이 때문에 오류 메시지가 표시됩니다.
git checkout
두 가지 중 하나를 수행 할 수 있습니다. 분기를 지정하고 경로를 지정하지 않으면 현재 분기를 지정한 분기로 전환합니다. 당신이 어떤 경로를 제공하면 주어진 지점에서 지점을 지정하면
git checkout mybranch # switch to branch 'my branch'
후 자식은 어느 인덱스에서 해당 경로를 체크 아웃 또는 것입니다.
git checkout myfile # checkout 'myfile' from index
여기서 알 수있는 것처럼 잠재적 인 모호성이 있습니다. myfile
이라는 지사 또는 mybranch
이라는 파일이있는 경우 어떻게해야합니까?
git에서이 모호성을 해결하는 방법은 매개 변수가 먼저 분기와 일치하는지 테스트하고 그렇지 않으면 매개 변수가 파일을 참조한다고 가정합니다. 동일한 이름의 파일과 브랜치가 있다면 git이 매개 변수를이 구문으로 파일로 처리하도록 할 수 있습니다. 당신이 checkout
의 지점 전환 양식을 사용하는 경우와 인덱스에서 지정된 파일을 체크 아웃하는하지 않을 경우
git checkout -- myfile # treat 'myfile' as a file
새로운 지점을 생성하는 -b
옵션은 만 유효합니다.
git checkout -b newbranch myfile # Illegal. I can't use `-b` when
# I'm checking out files.
당신이 git checkout -b newbranch origin/BRANCH
을 시도하고 당신이 그것을 origin/BRANCH
은 당신이 그렇게 자식이 당신이 파일을 참조해야한다는 가정이있는 모든 지점의 이름과 일치하지 못했음을 의미합니다이 오류가 발생합니다.
당신이 할 수있는 원격 지점 참조를 표시하려면 git branch -r
. 존재해야한다고 생각되는 가지에 대한 참조가없는 경우 git fetch
을 수행하여 원격에서 검색해야 할 수도 있습니다.
-b
을 제공하지만 새 분기를 기반으로하는 분기 이름이없는 경우 자식은 HEAD
즉, 현재 체크 아웃 된 분기가 설정된 커밋을 사용하도록 기본값 설정됩니다.
git checkout -b origin/BRANCH
이 현재 커밋에 따라 origin/BRANCH
라는 새로운 지역 지점을 만듭니다. 이것은 기껏해야 혼란을 야기 할 수 있으며 원하는대로 들리는 것은 아닙니다.
고맙습니다. 매우 완벽한 답변입니다. – saeedgnu