从git中的分支中提取最新提交

时间:2014-07-06 23:27:53

标签: git github

我的朋友和我正同时在Github的某个存储库的特定分支上工作,然而,当我尝试推动我的更改时,如果他在我拉动之前更新了文件并且我尝试推动地雷我得到了来自github的错误,我想知道在更改某些文件之前是否有正确的拉动更改?

到目前为止,我已尝试使用fetch origin branch-name,但这会在我的文件中添加一些HEAD内容,是否缺少步骤或更好的方法呢?

我基本上需要的是能够在github存储库上提取最新的更改,然后推送我的更改。

谢谢,任何建议都非常有帮助

2 个答案:

答案 0 :(得分:1)

这里最简单的解决方案是在不同的分支上工作(假设您正在处理不同的功能),然后在完成后合并它们。

但是,如果这不是一个选项,您只需要在推送之前将远程更改拉到本地分支。假设您正在处理名为awesome-feature的分支,您可以执行以下操作:

git fetch
git merge origin/awesome-feature

这个确切的过程有一个方便的快捷方式:

git pull

但是,如果您想要执行标准merge以外的任何操作,那么您应该手动提取并自行进行任何合并/变基。

一旦您进行了远程更改并且您的分支机构是最新的,您可以commitpush发送任何问题。

答案 1 :(得分:1)

git fetch origin branch-name从服务器检索信息但它没有进行任何合并。

对于高级用户来说,这是一件好事,因为它提供了额外的控制和灵活性。对于新用户,它只会增加不必要的复杂性新用户应该使用git pull,正如@Jon所说,fetchmerge后面跟{{1}}的快捷方式。

正如@Jon所说,可能最好不要创建自己的分支。

在我看来,如果出现以下情况,你应该在同一个分支机构工作:

  • 你们中只有两个。
  • 你们俩都没有很多"正在进行的工作"无法立即检查。
  • 你们两个都不经常检查。

如果你在方程式中添加更多人,则更容易发生冲突,并且更有可能将人们放在他们自己的分支上是一个很好的解决方案。同样,如果有人必须处理需要大量工作的功能,但他们不想检查主分支上的中间步骤,那么将该功能放在自己的分支上的另一个好理由。最后,如果主分支上有频繁的签到,那么可能在您自己的分支上工作是一件好事。 (或者它可能不会。这个取决于你的哲学。)

相关问题