2

这是我的 git 设置(我们在公司网络中使用 Git + Atlassian Stash):

upstream:
  master

origin (my fork of 'upstream'):
  master
  branch1 (branch of master, with a few commits on top of it)

clone (local; clone of 'origin'):
  master
  branch1 (ahead of 'origin:branch1' by 1 commit)

我想做的事:

我想合并upstream:master -> clone:branch1。我知道此合并会发生冲突(因为我更改了我的文件,branch1而其他人在上游已更改)。完成此操作后,我希望将我的更改推回origin:branch1,这将包括我的 1 个提交 + 来自上游的最新基础(我想跟上master分支的最新信息,因为那是我分支的分支)。除此之外,我希望它成为一个变基,以便提交历史是干净的,并且不会到处都是蜘蛛网。

另一个注意事项是我不直接使用 git 命令行。在 Windows 上,我使用的是 SmartGit,所以如果有人知道该工具的说明,那将是最理想的。

我怎样才能像上面描述的那样正确合并?

4

1 回答 1

3

如果没有其他人克隆或正在使用 branch1,则可以将 master 更新为 upstream/master 后将其重新设置在 master 之上。

  • 一、fetchupstream(SmartGit:Remote/Pull,选择“Fetch Only”)
  • 然后重置masterupstream/master(SmartGit:本地/重置)
  • 现在在 master 之上 rebase branch1(SmartGit:在Branches视图中,您可以右键单击类似的分支master并选择Rebase HEAD将当前 HEAD 重新设置到所选分支上master)如有必要,请
    解决合并冲突。
  • 最后push(强制push)branch1to origin(SmartGit:在Branches视图的上下文菜单中,可以调用本地分支上的Pushand )。Push To

在此处输入图像描述

于 2013-10-31T20:58:06.647 回答