代码之家  ›  专栏  ›  技术社区  ›  Brad Gilbert

在执行git提交之后是否可以执行git-rebase

  •  6
  • Brad Gilbert  · 技术社区  · 15 年前

    我开始重写一些Perl程序 NASM 源文件。我已经为自己做了一些承诺 working copy 我在想我是否应该做而不是做 git pull 如果我本该这么做的话 git rebase .

    我已经决定我应该做一个 GIT重碱 但是我不知道如何重新构建我的存储库来实现这个效果,或者即使它是可能的。

    Screenshot-gitk: nasm.crop

    5 回复  |  直到 15 年前
        1
  •  6
  •   Norman Ramsey    15 年前

    这是可能的,而且 Git Magic 教程将解释如何进行。但是 如果有人看到你的树枝,那是不安全的 . 即使没有人见过你的分支,我还是敦促你重新考虑一下。

    为什么要重新平衡?为什么不直接拉/合并?

    重新平衡的目的是重写历史,以便您的存储库 反映了您认为软件应该改进的方式 实际上是这样的。这一点什么时候重要?当你是 分布式开发团队的初级成员,而您没有 相反,您所能做的就是将补丁提交到 看门人,希望他们被接受。最大化机会 接受时,您要重写历史,使修补程序 尽可能清洁。开发模式听起来熟悉吗?

    Manoj srivastava写了一篇 fairly thoughtful analysis of rebase-vs-merge .

        2
  •  2
  •   reto    15 年前
    1. 确保当前提交是合并提交: git log
    2. 首先,我们将主控形状重新设置为上一个提交(即合并前的提交): git reset HEAD^
      • 头^ 意思是:“head引用的提交之前的提交”
    3. 现在,您可以执行正常的重新平衡: Git钢筋原点/主

    下次我建议做一个 git fetch 然后将钢筋作为步骤3。

    我建议创建一个小tarball你当前的git回购,以防钢筋出错。当你更自信的时候,你就不那么经常这样做了(通常你可以用Git修复几乎所有的问题,但有时tarball更快)。

        3
  •  1
  •   Codebeef    15 年前

    我过去用以下方法取得了成功:

    对于此方法,我添加了以下别名:

    up = pull --rebase origin
    
    1. 将主分支分支分支到类似“dev”的地方或其他地方
    2. 开发中的工作
    3. 完成添加和提交更改后
    4. 搞鬼大师
    5. 切换到主控形状
    6. Git合并DEV
    7. Git推

    从远程回购拉入变更时:

    1. 切换到主控形状
    2. 搞鬼
    3. 切换到DEV
    4. 搞鬼大师

    牛传染性胃肠炎病毒

        4
  •  0
  •   Esko Luontola    15 年前

    您应该能够通过如下更改分支来撤消上次的合并:

    git branch your-changes <reflog of "Reworked test files...">
    git branch -f master remotes/origin/master
    

    在那之后,你可以尝试重新平衡。

        5
  •  0
  •   Collin Anderson    15 年前

    作为Dustin回复的后续,它应该是“git-config——global branch.master.rebase true”。