将指针移动到 master 的最后一个现有提交

Move pointer to last existing commit of master

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

很简单git rebase:

git checkout branch-name
git rebase master

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

  • master 合并到 branch-name(并不总是被视为最佳实践)
  • 一个git cherry-pick在一个新分支