2017-02-10 1 views
0

git에 브랜치의 커밋 버전을 체크 아웃하려면 어떻게해야합니까? 예를 들어, 내 지점 Dev은 커밋 ad4f43af43e입니다. 커밋을 어떻게 체크 아웃 할 수 있습니까? 하나의 파일 만이 아니라 전체 지점. 온라인으로 검색하여 찾았습니다 : git checkout <commit>,하지만 지점 이름을 지정하지 않았습니다브랜치 커밋을 체크 아웃하는 방법

고마워요.

+2

분기는 커밋을 가리키는 포인터입니다. SHA1에 의한 커밋을 체크 아웃하면 HEAD가 커밋을 직접 가리키게됩니다. https://git-scm.com/book/en/v2/Git-Branching-Branches-in-a-Nutshell – rom1v

답변

0

checkout에서 commit-sha까지 가능하면 해당 커밋에서 새 분기 (예 : feature)를 만들 수 있습니다.

$ git checkout <commit> 
$ git checkout -b feature # create a new branch named `feature` from the commit 


# if you want to replace the current branch (say 'develop') with new created branch ('feature') 
$ git branch -D develop  # delete the local 'develop' branch 
$ git checkout -b develop # create a new 'develop' branch from 'feature' branch 
+0

지점 만들기 '기능'이라고 말하면 지점은 원격 또는 로컬에 있습니다. ? – user1615666

+0

@ user1615666 : * 모두 * 힘내 지점은 로컬입니다. (원점/마스터와 같은 "원격 추적 브랜치"조차도 실제로 로컬입니다! git fetch를 실행할 때'origin '과 일치하도록 자동 업데이트됩니다 *'fetch'를 "Tell 내 자식은 인터넷 전화를 통해 또 다른 자식을 불러오고, 다른 자식이 내 자식을 위해하는 모든 업데이트를 얻으려고합니다. "한편, '자식 강제'는"내 자식은 같은 다른 자식을 호출하도록하지만, , * 그들에게 물건을주고 그들에게 가지를 업데이트 해 줄 것을 요청하십시오. ") – torek

0

특정으로부터 분기 찾고 있다면이

git checkout dev 

가 지금은 특정가에서 123,654 커밋 체크 아웃하려면, 먼저 분기에 반드시 지점의 커밋 dev 브랜치를 main 브랜치에 머릿속을 유지하면서 새로운 브랜치로 분기하십시오.

git checkout -b new-branch 123654 
0
git checkout <hash> # non named commit 
git checkout <branch_name> # named commit 

두 라인은 위의 커밋에 HEAD 포인터를 배치합니다. 브랜치 이름이 커밋이라는 것을 알아야한다. 브랜치에있을 때 새로운 커밋이 추가되면 진화 할 수있다.

당신이 ad4f43af43e 커밋에 당신에게 지점 Dev를 배치 할 경우이

git branch -f Dev ad4f43af43e 

Becareful 할 수 있습니다! 이것은 커밋을 느슨하게하기 때문에 위험합니다.

관련 문제