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