IT

이전 커밋을 체크한 후 최신 커밋으로 돌아가려면 어떻게 해야 합니까?

itgroup 2023. 4. 13. 20:45
반응형

이전 커밋을 체크한 후 최신 커밋으로 돌아가려면 어떻게 해야 합니까?

검사하거나 테스트하기 위해 이전 버전의 코드를 확인하기도 합니다.이전 커밋을 수정하고 싶을 때 어떻게 해야 하는지에 대한 지침을 봤지만, 변경하지 않았다고 가정합니다.예를 들어, 작업을 마친 후. git checkout HEAD^브런치 끝으로 돌아가려면 어떻게 해야 하나요? git log최신 커밋의 SHA가 표시되지 않게 되었습니다.

되돌아가고 싶은 커밋이 브랜치 헤드이거나 태그가 붙어 있는 경우는, 다음의 조작을 실행할 수 있습니다.

git checkout branchname

를 사용할 수도 있습니다.git reflogHEAD(또는 기타 심판)가 과거에 지적한 다른 커밋을 확인합니다.


추가하도록 편집됨:

Git의 새로운 버전에서는 실행만 하면git checkout또는 다른 무언가를 움직여서HEAD한 번, 당신은 또한 할 수 있다.

git checkout -

마지막 체크아웃 전 위치로 다시 돌아가기 위해서요.이것은 조개껍데기 숙어에 비유하여 동기부여되었다.cd -이전에 있던 작업 디렉토리로 돌아갑니다.

git 체크아웃 마스터

master는 힌트 또는 마지막 커밋입니다.gitk는 트리의 현재 위치만 보여줍니다.git reflog는 모든 커밋을 표시하지만, 이 경우 팁만 원하기 때문에 git checkout master.

방금 이 질문을 발견하고 덧붙일 것이 있습니다.

최신 커밋으로 이동하려면:

git checkout $(git log --branches -1 --pretty=format:"%H")

설명:

git log --branches에 모든 로컬브런치로부터의 커밋 로그를 나타냅니다.
-1하나의 커밋으로 제한 → 최신 커밋
--pretty=format:"%H"커밋 해시만 표시하도록 포맷합니다.
git checkout $(...)체크 아웃의 인수로 서브셸의 출력을 사용

주의:

이 경우 헤드가 분리됩니다(커밋에서 직접 체크아웃하기 때문에).이것은, 다음의 방법으로 브랜치명을 추출하는 것으로 회피할 수 있습니다.sed이하에 설명하겠습니다.


최신 커밋 브랜치로 이동하려면:

git checkout $(git log --branches -1 --pretty=format:'%D' | sed 's/.*, //g')

설명:

git log --branches에 모든 로컬브런치로부터의 커밋 로그를 나타냅니다.
-1하나의 커밋으로 제한 → 최신 커밋
--pretty=format:"%D"참조 이름만 표시하는 형식
| sed 's/.*, //g'여러 참조 중 마지막 참조를 제외한 모든 참조 무시(*)
git checkout $(...)체크 아웃의 인수로 서브셸의 출력을 사용

*) HEAD 및 리모트브런치를 먼저 나열하고 로컬브런치를 알파벳 내림차순으로 맨 마지막에 나열하기 때문에 나머지 1개는 알파벳 첫 번째 브런치 이름이 됩니다.

주의:

커밋이 여러 개일 경우 항상 (알파벳 순으로) 첫 번째 브랜치 이름만 사용합니다.


어쨌든, 가장 좋은 해결책은 체크아웃 장소를 알기 위해 최신 커밋의 레퍼런스 이름을 표시하는 것이라고 생각합니다.

git log --branches -1 --pretty=format:'%D'

: 에일리어스 작성git top을 사용하다

"GUI" "GUI'... gitk모든 커밋이 표시됩니다.그래픽으로 작업하는 것이 더 쉬울 수 있습니다.^^

이를 위해 다음 git 명령 중 하나를 사용할 수 있습니다.

git checkout master
git checkout branchname
git reflog //find the hash of the commit that you want to checkout
git checkout <commit number>>

최신 커밋이 마스터브런치에 있는 경우 간단히

git checkout master

약속하다
--syslog log --syslog --syslogs

커밋을
- 1 log --syslog - 1 --syslogs

의 커밋에
- 2 log --syslog - 2 --syslogs

마스터와 다른 지점이 있는 경우 해당 지점을 체크 아웃하고 마스터를 체크 아웃하는 간단한 방법이 있습니다.Voila, 당신은 다시 마스터의 끝에 있습니다.아마 더 현명한 방법이 있을 거야

할 수 요.git pull origin branchname 을 다시 . 최신 커밋을 다시 가져옵니다.

★★★의 git > 2..0gs> = 2.33.0

git switch -d -

를 사용하면 이전에 체크아웃한 커밋으로 체크아웃할 수 있습니다.따라서 두 개의 커밋을 전환하여 앞뒤로 이동할 수 있습니다.해 주십시오-dflag를 사용하면 분리된 상태의 커밋 간에 서핑을 할 수 있습니다.

언급URL : https://stackoverflow.com/questions/2427288/how-to-get-back-to-the-latest-commit-after-checking-out-a-previous-commit

반응형