【问题标题】:Updating local git branch before pushing在推送之前更新本地 git 分支
【发布时间】:2014-03-18 21:45:22
【问题描述】:

我正在与我的团队一起使用 git 开发一个关于 bitbucket 的项目。

  1. 我首先克隆了 repo。 => git 克隆
  2. 我想添加一个新文件。 => git 添加
  3. 我提交了我的新文件 => git commit
  4. 如果我执行 git status,我会看到我的分支提前一个提交。
  5. 我团队的一些成员也进行了更改,但没有添加与我的新文件的链接。 我在提交之前更新了我的项目 => git pull origin master => 这会自动触发合并(?!)
  6. 如果我执行 git status,我现在可以看到我的分支领先 2 次提交。
  7. 我推送我的更改 => git push origin master => 我的 2 个提交被推送了

我不明白的是为什么 git pull 会触发合并?这里没有必要。

我只想提交一个新文件,为什么我最后提交了 2 次?

提前致谢。

【问题讨论】:

    标签: git version-control bitbucket


    【解决方案1】:

    原因是您和您的同事对同一个基础进行了更改。所以他们需要合并。如果你做 rebase 而不是合并,你可以消除额外的提交。 Rebase 的效果就像您在更改之前让您的同事更改然后应用您的一样。

    【讨论】:

    • 好的,所以你建议下次做一个 git rebase 而不是 git pull,对吗?
    • pull 只是 fetch+merge 的捷径。可以改成fetch+rebase。但是,rebase 在您的特定情况下会很好地工作,但在其他情况下可能会变得更加复杂。我个人更喜欢合并,并且认为额外提交没有太大危害。绝对不要 rebase 已经推送的更改 - 这会给你的队友带来麻烦。
    • 对于像这样的小提交 git pull --rebase 应该很好用。当然,变基可能会像合并一样发生冲突,并且更难修复。用于添加大型功能,例如从主题分支中,通常最好合并并提交以显示它已集成到当前分支中。
    猜你喜欢
    • 2013-09-07
    • 1970-01-01
    • 2013-08-31
    • 1970-01-01
    • 1970-01-01
    • 2011-10-22
    • 2016-10-25
    • 2017-10-09
    • 1970-01-01
    相关资源
    最近更新 更多