代码之家  ›  专栏  ›  技术社区  ›  matpen

gitfetch-查看和修改传入的更改

  •  1
  • matpen  · 技术社区  · 9 年前

    我已经读过了 git pull = git fetch + git merge ,后者通常是首选的,因为它允许在合并更改之前查看更改。

    我们的小型开发团队正在服务器上共享git repo。我的同事刚刚推了推,我又取回了,所以他的提交现在在我的本地存储库中。我可以看到他们:

    git log ..origin/mybranch
    

    并用以下方法进行检查:

    git diff <hash>
    

    现在让我们想象一下,我想将更改合并到我的工作副本中,但我不喜欢某些提交或一次提交的部分。
    我的问题是:

    • 我如何在将提交合并到我的工作副本之前“修改”它?
    • 如果我可以执行上述操作,这会影响远程存储库吗?(例如,我曾读到推送后不应重新设置基础)
    • 如果我无法完成上述操作,如何在合并后修复更改?(例如手动…)

    简而言之:有人能概括一下通常在“获取”和“合并”之间执行的操作,以查看和编辑更改吗?

    1 回复  |  直到 9 年前
        1
  •  1
  •   Community Egal    7 年前

    您可以在不提交结果的情况下执行合并:

    git merge --no-ff --no-commit <hash>
    

    然后重置索引(但不重置反映合并的工作树)

    git reset 
    

    终于可以了 git add 任何文件甚至 git add --patch 部分 合并结果中要保留的文件数。
    或者可以完全拒绝合并文件: git checkout HEAD -- aFile .

    您在“”中有其他选项 How do you merge selective files with git merge ? "