这是我的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
分支的最新状态,因为那是一个我分支了)。除此之外,我希望它是一个rebase,因此提交历史记录是干净的,并且不会在整个地方发送蜘蛛网。
另一个注意事项是我不直接使用git命令行。在Windows上,我正在使用SmartGit,所以如果有人知道该工具的说明是最理想的。
如何正确合并,如上所述?
答案 0 :(得分:3)
如果没有其他人克隆过或正在使用branch1,那么一旦您将master更新为上游/主服务器,您就可以在master之上 rebase 。
upstream
(SmartGit:远程/拉动,选择“仅提取”)master
重置为upstream/master
(SmartGit:本地/重置)Branches
视图中,您可以右键单击master
之类的分支,然后选择Rebase HEAD
将您当前的HEAD重新定位到选定的分支master
)branch1
推送(强制推送)到origin
(SmartGit:在Branches
视图的上下文菜单中,您可以调用Push
和{{1在本地分支上)。