关联双远程服务器的本地Git仓库同步问题咨询
搞定两个本地Git仓库同步的实操步骤
哎,我懂你现在的状况——直接用cp把local1的文件拷去local2,还没用到Git命令就提交推去remote2了,现在要把两个本地仓库给同步好,而且remote1马上要退役换成remote2对吧?咱们一步步来捋清楚:
第一步:先确认local2的修改已经稳稳推去remote2了
你已经在local2跑了git add .、git commit还有git push,先确保这几步都完成了——去remote2的仓库看看,你的最新提交已经在那儿了,这是咱们后续操作的基础。
第二步:把local1的远程源换成remote2
既然remote1要退役了,咱们先给local1换个“靠山”:
- 先看看local1现在的远程源:敲
git remote -v,就能看到当前关联的远程仓库地址 - 如果原来的远程叫remote1(或者origin,看你当时命名),删掉它:
git remote remove remote1 - 再把remote2加进去:
git remote add origin <remote2的仓库地址>,要是原来的远程本来就叫origin,也可以直接改地址:git remote set-url origin <remote2的地址>,省得删了再加
第三步:把remote2的最新代码拉去local1
这一步是让local1跟上local2的提交历史:
- 先切到你常用的分支(比如main):
git checkout main - 拉取remote2的最新内容:
git pull origin main - 要是碰到冲突也别慌,手动打开冲突文件,把冲突的地方改好,然后跑
git add .、git commit -m "搞定合并冲突"就行了,之后再推一次也没问题。
第四步:验证两个仓库是不是完全同步了
现在俩本地仓库都关联remote2了,咱们检查下:
- 分别在local1和local2里敲
git log --oneline,看看提交记录是不是一模一样 - 要是俩仓库在同一台机器上,还可以在其中一个仓库里把另一个加成本地远程:
git remote add local2 ../path/to/local2,然后敲git diff local1/main local2/main,要是没输出就说明完全一致了
小提醒
- 要是local1还有没提交的修改,先敲
git stash把它们暂存起来,等同步完了再git stash pop恢复,处理可能的冲突就行 - 之后所有操作都盯着remote2来,别再往remote1推东西了,确保它退役前没新提交
内容的提问来源于stack exchange,提问作者Shashi Malladi
相关产品推荐
相关产品推荐

