git branch工作流程

时间:2011-03-22 23:52:22

标签: git

我想知道分支机构的正确工作流程是什么,并从主人那里拉出来。

我已经创建了一个分支,并且我有对其进行修改的文件。在大师中我已经完成了一些我需要在我的分支中修复的错误。当我尝试拉我的IDE时警告我,我的分支中的更改将被覆盖并且我应该首先提交,但是我不是应该提交的。

我需要从master获取修改的分支的正确工作流程是什么?

2 个答案:

答案 0 :(得分:3)

如果您想将更改添加到“脏”树中,只需git stash即可完成git merge ...。完成后,您可以使用git stash pop恢复更改。

答案 1 :(得分:1)

我想澄清一些事情:

  1. git术语中的第一个“pull”仅适用于将更改从远程分支合并到本地分支的情况,但不适用于本地分支之间。在本地分支机构的情况下,它将合并或变基。

  2. 如果你有一个带有一些错误修正的主分支和一些dev分支(我现在说的是本地分支)你正在开发一些新功能,那么似乎master分支是你的dev的上游科。因此,为了将历史保存为dev分支中的直线,并且将来还要将dev分支快速合并到master分支中,我建议使用rebase而不是merge。

  3. 即。而不是:

    git checkout dev
    git merge master
    

    你会做

    git checkout dev
    git rebase (-i) master
    

    参数“-i”是可选的 - 触发交互式rebase。当然,这也应该在干净的工作目录上执行。关键是,使用git你不必长时间保持工作目录脏,不必累积更改。您可以轻松地将更改作为小型单一用途单元提交到本地分支,然后使用交互式rebase清理它们

    来自git rebase docs

      

    假设存在以下历史记录   当前的分支是“主题”:

          A---B---C topic
         /
    D---E---F---G master 
    
         

    从这一点来看,以下任一命令的结果:

    git rebase master
    git rebase master topic
    
         

    将是:

                  A'--B'--C' topic
                 /
    D---E---F---G master 
    
         

    注意:后一种形式只是一个简称   git结帐主题,然后是git   rebase master。当rebase退出主题时   将仍然是签出的分支。