我正在使用 GitHub 网站提交 pull 请求(例如 development-Feature -> development)。在某些情况下存在冲突,它告诉我它不能自动 merge 并运行以下命令:
git checkout development
git merge development-Feature
git push origin development
当我在本地运行这个命令时,我得到:
merge made by the 'recursive' strategy
在本地它没有任何冲突(它自动 merge 了我的冲突文件)。
我的问题是,GitHub(网站)是否检查任何冲突(即使它们可以自动 merge ),如果有冲突就放弃?我试图找出 GitHub 在执行 pull 请求时使用的命令,但我似乎找不到。
谢谢,
最佳答案
你的做法恰恰相反。您应该将开发 merge 到您的功能分支中。
您的分支 development
的本地副本仍处于“旧”版本。您必须手动更新它。
如果你输入 git fetch -p
,从任何分支,它会从服务器下载关于分支的“元数据”,所以换句话说,你的本地 git 将能够知道您没有更新到最新版本。 -p
参数将从本地计算机中删除 github 上不再存在的分支的元数据。
现在执行完 fetch
命令后,您可以检查您的开发分支,您应该会看到一条消息,表明您“落后”了。
现在您需要键入 git pull origin development
(在开发分支上)以实际从服务器获取数据。
回到你的特性分支,做一个git merge development
。你会得到 github 正在谈论的冲突。修复它们,提交并推送。 Github 然后将允许您 merge
tl;博士
git checkout 开发
git pull origin development
git checkout 开发功能
git merge 开发
- 手动解决冲突
git commit
git push origin development-Feature
关于GitHub - merge 请求 - merge ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39539386/