답변:
경우 another_branch
이미 로컬에 존재하고이 지점에없는, 다음 git checkout another_branch
분기로 전환됩니다.
경우 another_branch
존재하지 않지만 origin/another_branch
않습니다, 다음 git checkout another_branch
에 해당합니다 git checkout -b another_branch origin/another_branch; git branch -u origin/another_branch
. 의 업스트림으로 생성 another_branch
하여 origin/another_branch
설정 origin/another_branch
합니다 another_branch
.
둘 다 존재하지 않으면 git checkout another_branch
오류를 반환합니다.
git checkout origin another_branch
대부분의 경우 오류를 반환합니다. 경우 origin
개정하고 another_branch
다음 그 개정의 파일을 체크 아웃하지만 아마 대부분의 당신이 기대하지 어떤 것을하는 파일입니다. origin
대부분에 사용되는 git fetch
, git pull
그리고 git push
원격, 원격 저장소의 URL의 별칭으로.
git checkout origin/another_branch
origin/another_branch
존재 하면 성공 합니다. 분기가 아닌 분리 된 HEAD 상태가됩니다. 새 커밋을 수행하면 기존 분기에서 새 커밋에 도달 할 수 없으며 해당 분기 중 어느 것도 업데이트되지 않습니다.
업데이트 :
2.23.0이 릴리스되었으므로 git switch
분기를 작성하고 전환하는 데 사용할 수도 있습니다 .
foo
존재하는 경우 다음 으로 전환하십시오 foo
.
git switch foo
foo
존재하지 않는 경우 origin/foo
작성 foo
하여 origin/foo
다음으로 전환하십시오 foo
.
git switch -c foo origin/foo
# or simply
git switch foo
더 일반적으로 foo
존재하지 않는 경우 foo
알려진 참조 또는 커밋에서 생성 한 후 다음으로 전환하십시오 foo
.
git switch -c foo <ref>
git switch -c foo <commit>
우리가 같은 시간에 Gitlab과 Github에서의 저장소를 유지하는 경우, 로컬 저장소는 예를 들어 두 개의 리모컨,있을 수 있습니다 origin
Gitlab과 github
Github에서를 들어. 이 경우 리포지토리에는 origin/foo
및이 github/foo
있습니다. git switch foo
불평 fatal: invalid reference: foo
이 심판,있는 알려져 있지 않기 때문에, origin/foo
또는 github/foo
만들 foo
. 필요에 따라 git switch -c foo origin/foo
또는 git switch -c foo github/foo
필요에 따라 지정 해야합니다. 두 원격 지사 모두에서 지사를 만들려면 새 지사에 고유 한 이름을 사용하는 것이 좋습니다.
git switch -c gitlab_foo origin/foo
git switch -c github_foo github/foo
foo
존재하는 경우 알려진 참조 또는 커밋 foo
에서 다시 작성 / 강제 작성 (또는 재설정 foo
) 한 후 다음으로 전환하십시오 foo
.
git switch -C foo <ref>
git switch -C foo <commit>
이는 다음과 같습니다.
git switch foo
git reset [<ref>|<commit>] --hard
알려진 심판 또는 커밋의 분리 된 HEAD로 전환하십시오.
git switch -d <ref>
git switch -d <commit>
분기를 만들고 싶지만 전환하지 않으려면 git branch
대신 사용하십시오. 알려진 심판 또는 커밋에서 브랜치를 생성하십시오.
git branch foo <ref>
git branch foo <commit>
git checkout
명령은 내 의견으로는, 너무 많은 일을한다. 이것이 여기에 많은 작동 모드가있는 이유입니다. 분기 git checkout
를 전환하는 것이 유일한 방법이라면 대답은 간단하지만 분기 를 만들거나 분기 를 전환 하지 않고 특정 커밋에서 파일을 추출 할 수도 있습니다 .
git switch
지점으로 전환하는 데 사용할 수 있습니다 .
git checkout
은 이전 버전에서도 대신 사용 하며 최신 버전에서도 작동합니다.
자식에서 다른 지점으로 전환. 간단한 대답,
git-checkout-분기 전환 또는 작업 트리 파일 복원
git fetch origin <----this will fetch the branch
git checkout branch_name <--- Switching the branch
브랜치를 전환하기 전에 수정 된 파일이 없는지 확인하십시오.이 경우 변경 사항을 커밋하거나 숨길 수 있습니다.
[ git checkout "branch_name"
]
말하는 또 다른 방법입니다.
[ git checkout -b branch_name origin/branch_name
]
"branch_name"이 원격으로 만 존재하는 경우
[ git checkout -b branch_name origin/branch_name
]는 리모컨이 여러 개인 경우에 유용합니다.
[ git checkout origin 'another_branch'
]에 대해서는 이것이 확실하지 않습니다. AFAK "fetch"명령을 사용하여이 작업을 수행 할 수 있습니다-[ git fetch origin 'another_branch'
]
일상 생활에서 유용한 명령 :
git checkout -b "branchname" -> creates new branch
git branch -> lists all branches
git checkout "branchname" -> switches to your branch
git push origin "branchname" -> Pushes to your branch
git add */filename -> Stages *(All files) or by given file name
git commit -m "commit message" -> Commits staged files
git push -> Pushes to your current branch
확인 : git branch -a
지점이 하나만있는 경우 그런 다음 아래 단계를 수행하십시오.
git config --list
git config --unset remote.origin.fetch
git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/*
depth
하며 이제 error: pathspec 'another_branch' did not match any file(s) known to git
위에서 제안한 명령을 사용하여 다른 원격 브랜치를 가져올 수 없는지 궁금 합니다. 그것은 원래의 질문에 관한 것이 아니지만 다른 사람들이 머리를 긁는 데 도움이 될 수 있습니다.
나는 이것을 사용하여 한 지점을 다른 지점으로 전환하여 사용할 수있는 사람처럼 매력적으로 작동합니다.
자식 스위치 [branchName] 또는 자식 체크 아웃 [branchName]
예 : 자식 스위치 개발 또는
자식 체크 아웃 개발
git checkout [branch]
이 질문에 오는 대부분의 사용자