힘내 GitHub에서 특정 지점을 당겨
여러 지점이있는 프로젝트가 있습니다. 나는 그것들을
로 밀어 넣었고 , 이제 다른 누군가가 프로젝트를 진행하고 있으므로 GitHub에서 지점을 가져와야합니다. 마스터에서 잘 작동합니다. 그러나 누군가가 지점을 만들었다 고 말하십시오
xyz
.
xyz
GitHub에서 분기 를 가져 와서 분기
xyz
에 병합하려면
localhost
어떻게해야합니까?나는 실제로 여기에 내 대답이 있습니다 :
그러나 "! [거부 됨]"오류와 "비 빨리 감기"에 대한 오류가 발생합니다.어떤 제안?
하지만 "! [거부 됨]"오류와 "빨리 감기가 아닌"문제가 발생합니다.
Git이 브랜치의 변경 사항을 현재 마스터로 병합 할 수 없기 때문입니다. branch를 체크 아웃
master
하고 원격 branch에 병합하려고 한다고 가정 해 봅시다
other-branch
. 이렇게하면 :
$ git pull origin other-branch
힘내는 기본적으로 이것을하고 있습니다 :
$ git fetch origin other-branch && git merge other-branch
즉, a
pull
는
fetch
뒤에옵니다
merge
. 그러나
pull
-ing 할 때 Git은 빨리 감기 병합을 수행 할 수있는 경우
에만
병합
other-branch
합니다
. 빨리 감기 병합은에 병합하려고하는 지점의 머리가되는 병합입니다 직접 하위 병합 할 지점의 머리. 예를 들어, 이력 트리가있는 경우 병합 하면 빨리 병합됩니다.
other-branch
O-O-O-O-O-O ^ ^ master other-branch
그러나 이것은 빠른 병합 이
아닙니다
.
v master O-O-O \ \-O-O-O-O ^ other-branch
문제를 해결하려면 먼저 원격 브랜치를
가져 오십시오
.
$ git fetch origin other-branch
그런 다음 현재 브랜치에 병합하고 (이것은 가정합니다
master
) 병합 충돌을 수정하십시오.
$ git merge origin/other-branch # Fix merge conflicts, if they occur # Add merge conflict fixes $ git commit # And commit the merge!
원격 지점을 명시 적으로 추적하기 만하면
git pull
원하는대로 간단 하게 수행 할 수 있습니다.
git branch -f remote_branch_name origin/remote_branch_name git checkout remote_branch_name
후자는 로컬 작업입니다.또는
대한 GitHub 문서에 더 적합합니다 .
git branch -f new_local_branch_name upstream/remote_branch_name
다음 명령을 사용하여 분기를 분기로 당길 수 있습니다.
git pull : git pull origin xyz:xyz
마스터 브랜치에있을 때 먼저 다음과 같은 브랜치를 체크 아웃 할 수 있습니다.
git checkout -b xyz
마스터에서 "xyz"라는 새 브랜치를 만들고 직접 체크 아웃합니다.그런 다음
git pull origin xyz
새 지점을 로컬
xyz
지점으로 가져옵니다 .
가장 좋은 방법은 다음과 같습니다.
git checkout -b <new_branch> <remote repo name>/<new_branch>
git fetch
최신 분기 목록을 가져옵니다.지금 당신은 할 수 있습니다
git checkout MyNewBranch
완료 :)
자세한 내용은 문서를 참조하십시오 : git fetch
나는 문제를 완전히 이해하고 있는지 확실하지 않지만 기존 지점을 당기는 것은 다음과 같이 수행됩니다 (적어도 나를 위해 작동합니다 :)
git pull origin BRANCH
이는 로컬 지점이 원산지 / 지점에서 생성되었다고 가정 한 것입니다.
이것은 다른 지점으로 병합하기 전에 원격 지점을 얻는 데 도움이되었습니다.
git fetch repo xyz:xyz git checkout xyz
git pull <gitreponame> <branchname>
일반적으로 코드에 리포지토리 만 할당 된 경우 gitreponame은 origin이됩니다.하나는 로컬이고 다른 하나는 remote와 같은 두 개의 저장소에서 작업하는 경우
git remote -v
에서 저장소 목록을 확인할 수 있습니다 . 현재 코드에 얼마나 많은 리포지토리가 할당되어 있는지 보여줍니다.BranchName은 해당 gitreponame에 존재해야합니다.다음 두 명령을 사용하여 repo를 추가하거나 제거 할 수 있습니다
git remote add <gitreponame> <repourl> git remote remove <gitreponame>
간단히 말하면, GitHub에서 분기를 가져 오려면
the_branch_I_want
:
git fetch origin git branch -f the_branch_I_want origin/the_branch_I_want git checkout the_branch_I_want
당신은 또한 할 수 있습니다
git pull -r origin master
병합 충돌이있는 경우 수정
git rebase --continue
-r은 rebase 용입니다. 이것은 당신에게 분기 구조를 만들 것입니다
v master o-o-o-o-o \o-o-o ^ other branch
에
v master o-o-o-o-o-o-o-o ^ other branch
이것은 더 깨끗한 역사로 이어질 것입니다. 참고 : 이미 다른 지점을 원점 (또는 다른 원격지)으로 밀었을 경우 리베이스 후 지점을 강제로 밀어야 할 수도 있습니다.
git push -f origin other-branch
내가 했어
git branch -f new_local_branch_name origin/remote_branch_name
대신에
git branch -f new_local_branch_name upstream/remote_branch_name
@innaM이 제안한대로. 업스트림 버전을 사용할 때 '치명적 : 유효한 개체 이름이 아닙니다 :'upstream / remote_branch_name '. 나는
git fetch origin
제안 된 의견으로 하지 않고 단순히로 대체
upstream
했습니다
origin
. 나는 그들이 동등한 것 같아요.참고 URL :
https://stackoverflow.com/questions/1709177/git-pull-a-certain-branch-from-github
도움이 되겠다면 ↓↓↓ 배너 한번만 클릭 해주시면 감사합니다 ^^
'programing' 카테고리의 다른 글
CSV 파일 데이터를 PostgreSQL 테이블로 가져 오는 방법은 무엇입니까? (0) | 2020.02.09 |
---|---|
열의 최대 값이있는 행을 가져옵니다. (0) | 2020.02.09 |
파이썬의 디렉토리 트리 목록 (0) | 2020.02.09 |
Perl에서 로케일 설정 경고를 수정하는 방법? (0) | 2020.02.09 |
OAuth 2는 보안 토큰을 사용한 재생 공격과 같은 것들로부터 어떻게 보호합니까? (0) | 2020.02.09 |