각각 웨어하우스 A(github)와 B(JAE's git)가 있고, 로컬 머신은 C입니다.
A와 B 모두 README.md를 초기화했는데, 이는 이 경우 이미 충돌이 발생하여 로그가 일치하지 않음을 의미합니다.
먼저 A창고에서 가져와서 수정해서 C에 제출한 후 원활하게 A에 제출합니다.
이때 C에서 B로 제출하는 방법과 창고 기록 A와 B의 로그를 일치시키려면 몇 번의 작업이 필요한가요?(후자는 일치만 가능합니다)
이 문제를 시도해 보았으나 해결되지 않았습니다.
오랜만에 git을 계속 써보니 구체적인 방법도 알게 됐네요.
창고 a가 최종 사용 창고이고 b가 반출 창고라고 가정합니다. 브랜치는 모두 개발입니다
이제 나 자신에게 답장하겠습니다.
첫 번째 단계는 원격 창고를 추가하는 것입니다
git 원격 추가 Origin1 git.a
git 원격 추가 Origin2 git.b
두 번째 단계는 로컬에서 변경된 사항이 없는지 확인하고 원격 창고 주소를 가져온 다음 리베이스하는 것입니다.
git fetch Origin1
git rebase -i Origin1/dev
갈등이 있으면 해결하세요.
git push -f Origin1 dev
git push -f Origin2 dev
완료.
실제로 초기화 파일을 지우고 다른 원격 웨어하우스의 주소를 로컬 .git/config에 추가할 수 있습니다. 예:
[remote "all"]
url = https://github .com /segment/test.git
url = https://git.oschina.net/segment/test.git
이후 작업은 동일하며 제출된 코드는 두 창고에 동시에 제출됩니다. .
두 개의 Git 저장소를 사용해 본 적이 없지만 다음과 같이 작동하는 것 같습니다.
1.git 원격 추가 $C 원격 창고 이름 $C 원격 창고 URL
2.C로 가져오기
3. 로컬 병합
4.$C 원격 창고 이름 $프로젝트 이름 푸시
참고자료: http://www.git-scm.com/book/zh/Git-%E5%9F%BA%E7%A1%80-%E8%BF%9C%E7%A8%8B%E4 %BB%93%E5%BA%93%E7%9A%84%E4%BD%BF%E7%94%A8
브랜치(마스터 브랜치로 가정)의 모든 로그를 동일하게 유지하는 솔루션:
밀어올리면 C와 B의 로그가 일관되어 작업을 계속할 수 있습니다
모든 브랜치의 일관성을 유지하려면 jae에서 새 프로젝트를 만들고 여기에 C를 푸시하는 것이 좋습니다
도움이 되셨으면 좋겠습니다
원격 저장소에서 가져오기 전에
그런 다음 끌어오고, 수정하고, 추가하고, 제출하고, 푸시하세요. 또
그런 다음 충돌이 있으면 해결합니다. 다른 원격 창고에서 코드를 직접 가져온 다음 단계별로 수정, 추가, 제출 및 푸시합니다.
모두 추측을 바탕으로 한 것입니다. 구체적이라면 직접 연습해 보세요. 참고용으로만 사용하세요.
여러 원격 저장소를 추가하는 방법은 이미 알고 계시리라 생각하므로 이에 대해서는 다루지 않겠습니다.
간단한 설명: C=A일 때 C 아래
git push -f 'B远程仓库' '分支'
이렇게 하면 B가 A C와 충돌하더라도 강제로 C의 상태를 덮어쓰게 됩니다. 따라서 A=B=C입니다. 그 이후에는 LOG가 일관성을 유지합니다. -f 매개변수는 강제 푸시를 의미합니다.그냥 시도해 보세요
미러 웨어하우스 구성
1.git remote add --mirror=push --mirror=fetch repoName url
2.git push repoName master