[git] Git의 최신 버전으로 돌아가는 방법?

나는 최근 SVN에서 Git으로 옮겼으며 약간 혼란스러워합니다. 디버거를 통해 이전 버전의 스크립트를 실행해야했기 때문에 git checkout <previous version hash>필요한 작업을 수행했습니다.

이제 최신 버전으로 돌아가고 싶지만 해시를 모르겠습니다. 입력하면 git log보이지 않습니다.

어떻게해야합니까? 또한 “두 버전으로 돌아 가기”또는 “가장 최근순으로 가기”와 같이 해시를 입력하는 것보다 버전을 변경하는 더 쉬운 방법이 있습니까?



답변

git checkout master트릭을해야합니다. 두 가지 버전으로 돌아가려면와 같이 말할 수 git checkout HEAD~2있지만 그 시간을 기준 으로 임시 분기를 만드는 것이 좋습니다.git checkout -b temp_branch HEAD~2


답변

특정 커밋에 체크 아웃하면 git은 분리 된 분기를 만듭니다. 따라서 전화하면 :

$ git branch

다음과 같은 것을 보게 될 것입니다 :

* (detached from 3i4j25)
  master
  other_branch

마스터 브랜치 헤드로 돌아 오려면 마스터 브랜치에 다시 체크 아웃하면됩니다.

$ git checkout master

이 명령은 분리 된 분기를 자동으로 삭제합니다.

경우 git checkout작동하지 않습니다 당신은 아마 나뭇 가지 사이에 충돌 수정 된 파일이 있습니다. 코드를 잃어 버리지 않게하려면 git 파일을 처리해야합니다. 세 가지 옵션이 있습니다.

  1. 수정 내용을 숨 깁니다 (나중에 팝업 가능).

    $ git stash
    
  2. 분리 된 분기를 재설정하여 변경 사항을 폐기하십시오.

    $ git reset --hard
    
  3. 이전 수정 사항으로 새 분기를 작성하고 커미트하십시오.

    $ git checkout -b my_new_branch
    $ git add my_file.ext
    $ git commit -m "My cool msg"
    

그런 다음 마스터 브랜치 (가장 최신 버전)로 돌아갈 수 있습니다.

$ git checkout master


답변

이것은 나를 위해 속임수를 썼다 (나는 여전히 마스터 브랜치에 있었다).

git reset --hard origin/master


답변

최신 버전으로 돌아가려면

git checkout <branch-name>

예를 들어, git checkout master또는git checkout dev


답변

분기 이름을 사용하여 한 가지를 확인할 수 있습니다.

HEAD를 움직일 수있는 몇 가지 방법이 있다는 것을 알고 있지만 git 전문가에게 맡겨서 열거 할 것입니다.

방금 제안하고 싶었 gitk --all습니다 .git으로 시작할 때 큰 도움이되었습니다.


답변

방금 git을 더 깊이 파고 들기 시작했기 때문에 올바르게 이해하고 있는지 확실하지 않지만 OP의 질문에 대한 올바른 대답은 다음 git log --all과 같은 형식 사양으로 실행할 수 있다고 생각합니다 git log --all --pretty=format:'%h: %s %d'. 이것은 현재 체크 아웃 된 버전을 표시 (HEAD)하며 목록에서 다음 버전을 가져올 수 있습니다.

BTW, .gitconfig약간 더 나은 형식으로 이와 같은 별칭을 추가하면 다음을 실행할 수 있습니다 git hist --all.

  hist = log --pretty=format:\"%h %ai | %s%d [%an]\" --graph

상대 버전과 관련 하여이 게시물을 찾았 지만 이전 버전에 대해서만 이야기하지만 아마도 최신 버전을 언급 할 것이 없습니다.


답변

여기에있는 답변 중 일부는 이전 커밋을 체크 아웃하기로 결정하기 전에 마스터 브랜치에 있다고 가정합니다. 항상 그런 것은 아닙니다.

git checkout -

마스터인지 아닌지에 관계없이 이전에 있던 지점으로 돌아갑니다.