Azure DevOps拉取请求合并分支:冲突文件解决与文件忽略方法
在Azure DevOps拉取请求中解决冲突文件
当拉取请求(PR)出现文件冲突时,有两种常用解决方式:
方式一:Azure DevOps网页端直接解决
- 打开目标PR页面,切换到冲突标签页,查看所有存在冲突的文件列表
- 点击具体冲突文件,进入在线编辑器:左侧显示源分支的内容,右侧显示目标分支的内容,冲突部分会被高亮标记
- 直接在编辑器中编辑代码,选择保留需要的内容,删除冲突标记(
<<<<<<<、=======、>>>>>>>) - 编辑完成后,点击「合并冲突」保存修改
- 确认所有冲突解决完毕后,即可继续完成PR的合并流程
方式二:本地解决冲突后推送
- 拉取目标分支的最新代码:
git checkout <目标分支名称> git pull origin <目标分支名称> - 切换回你的源分支:
git checkout <源分支名称> - 将目标分支合并到源分支,触发冲突提示:
git merge <目标分支名称> - 打开冲突文件,找到
<<<<<<<(源分支内容起始)、=======(分隔线)、>>>>>>>(目标分支内容结束)标记的冲突块,手动修改代码保留需要的内容,删除冲突标记 - 将修改后的冲突文件加入暂存区:
git add <冲突文件名> - 提交合并结果:
git commit -m "解决分支合并冲突" - 推送到远程源分支:
git push origin <源分支名称> - 回到Azure DevOps的PR页面,此时冲突已自动消除,可继续完成合并
合并分支时忽略单个或多个文件
Azure DevOps本身没有内置「合并时忽略文件」的功能,需要借助Git命令来实现,分两种场景处理:
场景一:单次合并时暂时忽略文件
方法1:合并前先阻止指定文件的更新
- 拉取目标分支最新代码,切换到源分支后,执行带参数的合并命令(不自动提交):
git merge <目标分支名称> --no-commit --no-ff - 撤销指定文件的合并修改,恢复到合并前状态:
git reset HEAD <要忽略的文件名> git checkout -- <要忽略的文件名> - 确认其他文件合并正常后,提交合并结果:
git commit -m "合并分支,忽略[文件名]的修改" git push origin <源分支名称>
方法2:合并后回退指定文件
- 先正常完成分支合并,然后回退指定文件到合并前的版本:
git checkout HEAD~1 -- <要忽略的文件名> - 提交回退操作:
git commit -m "回退[文件名]到合并前状态" git push origin <源分支名称>
场景二:永久忽略特定文件的合并(适合配置文件等)
使用Git的skip-worktree标记,让Git忽略该文件的本地修改,不会被提交或同步到远程:
- 标记需要忽略的文件:
git update-index --skip-worktree <文件名> - 若后续需要取消忽略,执行:
git update-index --no-skip-worktree <文件名>
注意:该标记是本地设置,每个仓库开发者都需单独配置,无法通过远程仓库统一同步
内容的提问来源于stack exchange,提问作者Mohammad Aslam
相关产品推荐
相关产品推荐

