저는 이 질문에 대해 생각해 본 적이 없고, 설명하기가 쉽지 않다고 느껴서 한번도 물어본 적이 없습니다.
예를 들어 프로젝트 A와 프로젝트 B가 있는데 둘은 전혀 관련이 없습니다.
프로젝트 A와 B에는 각각 remoA, locA, remoB 및 locB로 표시되는 원격 창고와 로컬 창고가 있습니다.
질문:
정상적인 상황에서 locA는 확실히 remoA와 연결되고 locB는 remoB와 연결됩니다. 이 연결이 복제를 통해 이루어졌는지 또는 git 원격 추가(remote)(repoUrl)를 통해 이루어졌는지 여부에 관계없이 말이죠. 이제 로컬 라이브러리 locA 및 locB가 이미 존재하지만 locB는 새로 초기화된 상태이고 작업 오류로 인해 여전히 빈 라이브러리라고 가정합니다.
git 원격 추가 OriginB(remoBUrl)
을 실행했습니다.
git pull을 실행하면 remoA와 remoB의 원격 브랜치 코드가 로컬 마스터 브랜치에 병합되나요?
phpcn_u15822017-06-29 10:10:59
을 실행했습니다.작업 오류로 인해
git remote add origin (remoAUrl)
이 실행되었습니다. 나중에 이 오류를 발견하고 git 원격 추가 OriginB(remoBUrl)
넣을 계획이 없다면 remoA
关联给 locB
,那么到这里就还是错的。正确做法应该是 git remote rm origin
然后 git remote add origin (remoBUrl)
그럼 현재 remoA/master와 remoB/master는 모두 locB/master에 매핑되어 있나요?
당연하지. 우선 git checkout -b --track xxx
这种感觉。其次,你添加了两个 remote
,其中一个叫 origin
,另一个叫 originB
。但 git
会优先使用 origin
과 비슷하게 '연관' 관계가 형성됐다고 말하는 것이 더 적절할 수도 있겠다는 생각이 듭니다. 자세한 내용은 다음 기사를 참조하세요
git pull을 실행하면 remoA와 remoB의 원격 브랜치 코드가 로컬 마스터 브랜치에 병합되나요?
당연하지. 먼저 로컬을 지점 중 하나로 업데이트한 다음 pull
다른 지점으로 이동하지 않는 한.
git pull
不指定后续参数,默认就是 git pull origin
。如果你在 master
branch 上,默认也就是 git pull origin master
.
물론, 설정에 따라 변경될 수 있습니다. 위에서 언급한 사항은 기본 조건일 뿐입니다. 실제 상황을 보려면 .git/config
文件看一看。命令行里输入 cat .git/config
을 열어주세요. 예:
이는 git
두 가지 사실을 알려줍니다.
지금 여기 계시다면 master
branch 上,那么默认的 remote
是 origin
이런 상황에서 공연을 한다면 git pull
,不带任何参数的那种,那么就相当于 git pull origin master
git push -u newOrigin newBranch
来改,那现在 git pull
就相当于 git pull newOrigin newBranch
了。
类似地,也可以 git config branch.master.remote newOrigin
然后 git config branch.master.merge refs/heads/newBranch
를 사용할 수 있습니다. 결과는 동일합니다.