git以交互方式查看分支的更改

git以交互方式查看分支的更改,git,Git,在我们的研究小组中,我们经常使用git协作撰写论文。通常,主要作者通过github/gitlab扮演维护者角色并控制master,其他人通过修复打字错误、公式、章节等在功能分支中做出贡献,并且通常不会或不能推送到受保护的master 假设历史是这样的: A -- B -- C -- D <-- master \ E -- F -- G <-- patch-1 A -- B -- C -- D -------J <-- master \

在我们的研究小组中,我们经常使用git协作撰写论文。通常,主要作者通过github/gitlab扮演维护者角色并控制master,其他人通过修复打字错误、公式、章节等在功能分支中做出贡献,并且通常不会或不能推送到受保护的master

假设历史是这样的:

A -- B -- C -- D <-- master
      \
       E -- F -- G <-- patch-1
A -- B -- C -- D -------J <-- master
      \                /
       E -- F -- G -- H

其中,H是我的审阅提交,用于还原E-G中不适合的更改,J是我当时非常简单的合并。

目前,我使用以下简单但可能次优的工作流:

git checkout -b tmp patch-1
git reset B
# now use my editor of choice that has git gutter (e.g., sublime text)
# review changes, revert those that i don't like, adapt others
# when done:
git reset patch-1
git commit -a
git checkout master
git merge tmp
此工作流程比您现有的工作流程稍微简单,有两个优点:

patch-1与远程设备保持推送兼容。 您同事的原始更改将全部保留,您的修改将显式保存在单独的提交中。
不要让每个人都直接推给大师。设置GitHub、Bitbucket等允许拉取请求的东西。然后,您可以在正确交付我们所做的工作之前查看拉取请求。。。gitlab、github等。但是,不要让您轻易地接受/拒绝拉取请求的部分/行中的单个更改。。。我正在寻找对此的支持,更倾向于直接在git@CoryKramer相应地更新了问题这与latex无关:你应该删除该标记。@Nick认为这有助于设置上下文,但好的,完成了。。。
git checkout patch-1
# e.g. one change you don't like is in commit G
git revert G
git reset HEAD~
# At this point you have changes _reverting_ G in the index.
# Now you work on the index to get rid of the changes reverting those in G that you DO want to keep.
git commit
git checkout master
git merge patch-1