it-source

GitHub 프로젝트에서 특정 커밋을 얻는 방법

criticalcode 2023. 6. 20. 21:41
반응형

GitHub 프로젝트에서 특정 커밋을 얻는 방법

깃허브에서 페이스북 API를 다운받아야 합니다.보통, 저는 최신 소스 코드를 다운로드하기 위해 '다운로드' 탭을 클릭합니다.이 경우에는 이전 커밋이 필요합니다. 91f256424531030a4548693c3a6ca49ca3f35a. 하지만 그 커밋에서 전체 프로젝트를 가져오는 방법을 모르겠습니다.

누가 이것을 어떻게 하는지 알려주실 수 있나요?

(BTW, 저는 맥에 있습니다.그게 무슨 차이가 있는지 모르겠어요.)

먼저 git를 사용하여 저장소를 복제합니다. 예를 들어 다음과 같은 작업을 수행합니다.

git clone git://github.com/facebook/facebook-ios-sdk.git

그러면 저장소의 전체 기록이 다운로드되므로 원하는 버전으로 전환할 수 있습니다.그런 다음 새로 복제된 리포지토리로 변경합니다.

cd facebook-ios-sdk

및사를 합니다.git checkout <COMMIT>올바른 커밋으로 변경하기

git checkout 91f25642453

더 이상 지점에 있지 않고 특정 버전으로 직접 전환했기 때문에 경고가 표시됩니다.(이를 "분리 HEAD" 상태라고 합니다.)이 SDK를 적극적으로 개발하기보다는 SDK만 사용하기를 원하는 것처럼 들리기 때문에 GIT의 작동 방식에 대해 더 알고 싶지 않다면 걱정할 필요가 없습니다.

이 질문을 게시했을 때 이 질문이 있었는지는 모르겠지만, 커밋을 다운로드하는 가장 좋고 쉬운 방법은 리포지토리를 볼 때 커밋 탭을 클릭하는 것입니다.그런 다음 커밋 이름을 클릭하는 대신 커밋 이름/메시지 오른쪽에 있는 <> 기호가 있는 기록 단추의 이 시점에서 리포지토리 찾아보기를 클릭하고 복제 또는 다운로드 단추를 클릭할 때 마지막으로 ZIP 다운로드 단추를 클릭합니다.

도움이 되길 바랍니다.

시반의 gif 답변

1. github에서 커밋 클릭

2. 각 커밋의 오른쪽에서 코드 찾아보기를 선택합니다.

3. 다운로드 zip을 클릭하면 커밋 시점에 소스 코드가 다운로드됩니다.

7자리 SHA1 짧은 형식을 사용하여 커밋을 다운로드하려면 다음을 수행합니다.

작업 예제:

https://github.com/python/cpython/archive/31af650.zip  

설명:

 `https://github.com/username/projectname/archive/commitshakey.zip`

키를 31af650ee25f65794b75d4dfefed6fe4758781c1처음 7개의 차를 구하세요.31af650GitHub의 기본값입니다.

손실된 커밋(로컬이 아닌 github에만 있음)을 복구하는 가장 쉬운 방법은 이 커밋을 포함하는 새 분기를 만드는 것입니다.

  1. 커밋을 열어 둡니다(github.com/org/repo/commit/long-commit-sha) 과 같은 URL).
  2. 오른쪽 상단의 "파일 찾아보기" 클릭
  3. 드롭다운 "Tree: short-sha..."를 클릭합니다.왼쪽 위에
  4. 새 분기 이름 입력
  5. git pull그 지역에 새로 생긴 지점

다음 명령 시퀀스를 사용해 보십시오.

$ git fetch origin <copy/past commit sha1 here>
$ git checkout FETCH_HEAD
$ git push origin master

커밋을 탐색하는 대신 키(Github 도움말, 키보드 단축키)를 눌러 현재 수정/커밋에 대한 "permallink"를 얻을 수도 있습니다.
이 URL에서 됩니다.https://github.com/<user>/<repository>/에서 (헤드)로 ~https://github.com/<user>/<repository>/tree/<commit id>.

커밋을 를 다시 로드해야 "" "URL" "라는 메시지가 나타납니다.Clone or Download "키드보 "를이킵" "리니다" "가튼버▁button"를 .https://github.com/<user>/<repository>/archive/<commit id>.zip의 최신것아 https://github.com/<user>/<repository>/archive/master.zip.

특정 커밋을 사용하거나 특정 커밋을 코드화하려면 다음 명령을 사용할 수 있습니다.

git checkout <BRANCH_NAME>
git reset --hard  <commit ID which code you want>
git push --force

예:

 git reset --hard fbee9dd 
 git push --force

질문 제목이 모호합니다.

  • 커밋이 필요한 경우 다음 URL을 사용하십시오. https://github.com/facebook/facebook-ios-sdk/commit/91f256424531030a454548693c3a6ca49ca3f35a.patch (GitHub에서 단일 커밋-diff를 다운로드하는 방법에 대한 질문은 여기에서 설명하는 것과 같습니다.)
  • 필요한 커밋에서 전체 프로젝트를 다운로드해야 하는 경우 다음 URL을 사용하십시오. https://github.com/facebook/facebook-ios-sdk/archive/91f256424531030a454548693c3a6ca49ca3f35a.zip
  • Git 개정 로그가 필요한 경우 저장소를 복제하고 원하는 커밋을 체크아웃합니다.

수락된 답변에 추가로:

제안된 명령 "git checkout hash"를 사용하는 데 필요한 해시를 보려면 다음을 사용할 수 있습니다.git log하지만 필요한 것에 따라 해시를 복사/붙여넣기하는 것보다 쉬운 방법이 있습니다.

사용할 수 있습니다.git log --oneline더 압축된 형식으로 많은 커밋 메시지를 읽습니다.

이것이 최소한의 정보와 부분적으로만 보이는 해시가 포함된 커밋의 한 줄 목록이라고 가정해 보겠습니다.

hash111 (HEAD -> master, origin/master, origin/HEAD)
hash222 last commit
hash333 I want this one
hash444 did something
....

네가 원한다면last commit사용할 수 있습니다.git checkout master^.^마스터 앞에서 커밋을 제공합니다.그렇게hash222.

커밋을 n번째 커밋을 할 수 .git checkout master~n를 들어, 예들어, 사용을 합니다.git checkout master~2당신에게 약속을 할 것입니다.hash333.

이를 위해 Github 웹 페이지를 사용하기 위해 정확히 한 일은 다음과 같습니다: 커밋 목록으로 이동 -> 다운로드해야 할 커밋 번호 -> 페이지 오른쪽 상단의 "파일 찾아보기" -> 드롭다운 버튼 "코드"를 클릭한 다음 "ZIP 다운로드"를 클릭합니다.

나는 git 단말기가 없고 커밋 다운로드 전용으로 설정하고 싶지 않습니다. Sivan과 Kheti의 답변은 웹 페이지 검색을 사용하여 커밋을 다운로드하는 데 도움이 되었고, 내 단계가 나와 같은 사용자에게 도움이 되기를 바랍니다.

커밋을 보려면 이 글을 쓰세요.

git log --oneline

돌아가려는 커밋의 이름을 복사한 다음 다음과 같이 기록합니다.

git checkout "name of the commit"

이 작업을 수행하면 해당 커밋의 파일이 현재 파일로 바뀝니다.그런 다음 원하는 모든 작업을 수행할 수 있으며 작업이 완료되면 다음 명령을 작성하여 현재 파일을 새로 생성된 다른 분기로 추출하여 커밋을 추출한 이전 분기에 대한 위험을 방지할 수 있습니다.

git checkout -b "name of a branch to extract the files to"

다른 분기에 지정된 커밋의 내용이 있습니다.

언급URL : https://stackoverflow.com/questions/7832770/how-to-get-certain-commit-from-github-project

반응형