You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Git合并基于同一初始基础的两个协作开发项目?

解决独立开发项目的Git合并问题

嗨,这个场景太常见了——一开始没同步Git,各自在本地改代码,现在要合并完全不用手动复制粘贴,也不用担心覆盖,Git有现成的方案,按步骤来就行:

第一步:先给对方的本地代码「套上Git壳」

你的协作伙伴现在的本地文件夹还不是Git仓库,先让他做这几步(先备份总没错!):

  • 把当前本地项目整个复制一份到别的文件夹(防手抖操作失误)
  • 进入他的原项目文件夹,初始化Git并提交所有本地改动:
# 切换到他的本地项目目录
cd /路径/到/他的/本地/项目
# 初始化Git仓库
git init
# 把所有文件加入暂存区
git add .
# 提交本地的全部改动,备注写清楚方便后续识别
git commit -m "本地独立开发的所有改动"

第二步:拉取你的远程仓库并合并

接下来让他把你的远程仓库加为Git源,然后拉取你的代码并合并——这里关键要加一个参数,因为两个仓库没有共同的提交历史:

# 添加你的远程仓库地址(替换成实际的仓库URL)
git remote add your-repo https://你的Git仓库地址.git
# 拉取你的主分支代码(如果你的主分支是master就换成master)
git pull your-repo main --allow-unrelated-histories

划重点:--allow-unrelated-histories是必须的!因为你和他的代码是完全独立开始的,Git默认会拒绝合并无共同祖先的仓库,这个参数就是告诉Git允许这种合并。

这时候Git会自动合并所有不冲突的文件,如果遇到冲突(比如同一个文件你们俩都改了),Git会在冲突文件里用<<<<<<<、=======、>>>>>>>标记出双方的改动,你们只需要一起协商修改冲突部分,然后提交合并结果就行:

# 解决冲突后,把修改好的文件加入暂存
git add .
# 提交合并后的结果
git commit -m "合并[你的名字]的远程仓库代码"

第三步:同步到远程仓库(按需操作)

如果你们想让合并后的代码同步到远程仓库,让他推上去就行(前提是他有你的仓库推送权限):

# 把合并后的主分支推送到你的远程仓库
git push your-repo main

或者也可以让他推一个新分支到远程,你再拉取这个分支合并到你的主分支,这样更灵活。

针对你问的两个核心问题的明确答案:

  1. 对方能否克隆你的仓库后叠加本地工作?
    可以,但不如上面的方法稳妥——直接克隆的话,他需要把本地文件复制到克隆仓库里,容易漏文件或者误覆盖;而用Git合并的方式,能自动处理绝大多数非冲突文件,不会乱覆盖。

  2. 有没有无需手动录入代码、不会覆盖的方式推送对方本地文件?
    完全有!上面的流程全程不需要手动敲代码(除了解决冲突的协商修改),Git会自动合并双方的文件,只有冲突部分会明确标记,绝对不会偷偷覆盖任何一方的原有代码。

另外补充个小技巧:如果对方嫌本地操作麻烦,也可以让他把本地项目打包发给你,你在自己的仓库里把他的本地文件夹加为Git源,然后拉取合并,效果是一样的。

内容的提问来源于stack exchange,提问作者Jack N

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 07:59:31