【问题标题】:Move pointer to last existing commit of master将指针移动到 master 的最后一个现有提交
【发布时间】:2015-03-03 13:20:59
【问题描述】:

我是 git 命令的新手,第一次需要做这样的事情,不知道从哪里开始 我现在拥有的:

branch-name          E
                    /
master A - B - C - D - F- G

我想要什么

branch-name                 E
                           /
master A - B - C - D - F- G

我怎样才能做到这一点?

编辑:错误消息

git rebase master 出现错误消息:

CONFLICT(修改/删除):文件.txt 在 HEAD 中删除并修改 d 在初始提交中。版本 file.txt 的初始提交留在树中。 未能合并更改。 补丁在 0001 初始提交时失败 失败的补丁副本位于: 项目路径/.git/rebase-apply/patch 警告:您的控制台字体可能不支持 Unicode。如果您遇到 输出中的 trange 字符,考虑切换到 TrueType 字体,例如 L ucida 控制台!

【问题讨论】:

    标签: git


    【解决方案1】:

    这是一个简单的git rebase

    git checkout branch-name
    git rebase master
    

    但是您可能必须在变基之后强制推送分支名称(如果您之前已经推送过):git push --force.
    如果其他人已经在他们自己的本地仓库中的同一分支上工作,那可能会出现问题,因为他们必须将其重置为新的历史记录。
    在这种情况下(已推送分支),替代方案将是(类似于“alternative to rebasing pushed commits”中讨论的内容):

    • master 合并到branch-name(并不总是被视为最佳做法)
    • git cherry-pick 在新分支中

    【讨论】:

    • git rebase --onto master branch-name branch-name 也可以工作
    • 我认为这是我需要的,但与 rebase 有一些冲突(分支名称和 master 中的文件都已删除)
    • @harry180 我得去几个小时,但请留下确切的错误信息。
    • @harry180 所以它看起来类似于stackoverflow.com/q/5516391/6309git add -A .git rebase --continue 应该允许您恢复变基。
    • 是的,你说得对 :) 非常感谢 :) -A 代表什么?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-26
    • 2013-02-20
    • 2011-04-12
    • 2014-10-18
    • 2011-10-07
    • 2014-07-01
    相关资源
    最近更新 更多