多人协作Git仓库:本地分支与main分支同步及代码保留问题
Git操作问题解答
1. 执行git pull会删除本地Feature A代码吗?
不会直接删除你的Feature A代码,具体分两种情况:
- 如果你当前在Feature A分支,直接执行无参数的
git pull,默认只会拉取远程Feature A分支的更新(如果你的Feature A还没推送到远程,这步操作不会有任何变化),完全不会影响你的本地代码。 - 如果你执行
git pull origin main(拉取远程main分支并合并到当前Feature A分支):- 若代码无冲突,Git会自动合并远程main的Feature B修改和你的Feature A修改,不会覆盖你的代码。
- 若index.js等文件存在冲突(比如你们修改了同一部分代码),Git会暂停合并,标记出冲突位置,需要你手动解决后才能完成合并,不会直接删除或覆盖你的代码。
2. 如何同步最新main分支并保留Feature A内容?
操作前建议先用git stash暂存本地未提交的修改(避免意外),操作完成后用git stash pop恢复,推荐两种常用的安全操作方式:
方式一:合并远程main到Feature A分支(保留完整提交历史)
- 切换到Feature A分支:
git checkout FeatureA(已在该分支可跳过) - 拉取远程main的最新代码:
git fetch origin main - 将远程main的更新合并到本地Feature A:
git merge origin/main - 若出现冲突,打开冲突文件(如index.js),找到
<<<<<<<、=======、>>>>>>>标记的冲突段,手动调整代码后,执行git add 冲突文件名,再git commit完成合并。
方式二:将Feature A变基到远程main分支(得到更简洁的线性提交历史)
- 切换到Feature A分支:
git checkout FeatureA(已在该分支可跳过) - 拉取远程main的最新代码:
git fetch origin main - 执行变基操作:
git rebase origin/main - 若出现冲突,解决冲突后执行
git add 冲突文件名,再git rebase --continue继续变基;若想放弃变基,执行git rebase --abort。
内容的提问来源于stack exchange,提问作者Dreynaldis
相关产品推荐
相关产品推荐

