我的朋友和我正同时在Github的某个存储库的特定分支上工作,然而,当我尝试推动我的更改时,如果他在我拉动之前更新了文件并且我尝试推动地雷我得到了来自github的错误,我想知道在更改某些文件之前是否有正确的拉动更改?
到目前为止,我已尝试使用fetch origin branch-name
,但这会在我的文件中添加一些HEAD内容,是否缺少步骤或更好的方法呢?
我基本上需要的是能够在github存储库上提取最新的更改,然后推送我的更改。
谢谢,任何建议都非常有帮助
答案 0 :(得分:1)
这里最简单的解决方案是在不同的分支上工作(假设您正在处理不同的功能),然后在完成后合并它们。
但是,如果这不是一个选项,您只需要在推送之前将远程更改拉到本地分支。假设您正在处理名为awesome-feature
的分支,您可以执行以下操作:
git fetch
git merge origin/awesome-feature
这个确切的过程有一个方便的快捷方式:
git pull
但是,如果您想要执行标准merge
以外的任何操作,那么您应该手动提取并自行进行任何合并/变基。
一旦您进行了远程更改并且您的分支机构是最新的,您可以commit
和push
发送任何问题。
答案 1 :(得分:1)
git fetch origin branch-name
从服务器检索信息但它没有进行任何合并。
对于高级用户来说,这是一件好事,因为它提供了额外的控制和灵活性。对于新用户,它只会增加不必要的复杂性新用户应该使用git pull
,正如@Jon所说,fetch
是merge
后面跟{{1}}的快捷方式。
正如@Jon所说,可能最好不要创建自己的分支。
在我看来,如果出现以下情况,你应该在同一个分支机构工作:
如果你在方程式中添加更多人,则更容易发生冲突,并且更有可能将人们放在他们自己的分支上是一个很好的解决方案。同样,如果有人必须处理需要大量工作的功能,但他们不想检查主分支上的中间步骤,那么将该功能放在自己的分支上的另一个好理由。最后,如果主分支上有频繁的签到,那么可能在您自己的分支上工作是一件好事。 (或者它可能不会。这个取决于你的哲学。)