Windows 如何从上游分行合并?
这是我的git设置(我们在公司网络中使用git+Atlassian存储): 我想做的是: 我想合并Windows 如何从上游分行合并?,windows,git,branching-and-merging,smartgit,Windows,Git,Branching And Merging,Smartgit,这是我的git设置(我们在公司网络中使用git+Atlassian存储): 我想做的是: 我想合并上游:主机->克隆:分支1。我知道此合并会有冲突(因为我更改了branch1中的文件,其他人在上游更改了这些文件)。完成后,我希望将我的更改推回到origin:branch1,其中将包括我从上游提交的1个提交+最新基础(我希望与主分支保持同步,因为这是我从中分支出来的分支)。除此之外,我希望它是一个重基,以便提交历史是干净的,不会到处都是蜘蛛网 另一个注意事项是,我没有直接使用git命令行。在Win
上游:主机->克隆:分支1
。我知道此合并会有冲突(因为我更改了branch1
中的文件,其他人在上游更改了这些文件)。完成后,我希望将我的更改推回到origin:branch1
,其中将包括我从上游提交的1个提交+最新基础(我希望与主分支保持同步,因为这是我从中分支出来的分支)。除此之外,我希望它是一个重基,以便提交历史是干净的,不会到处都是蜘蛛网
另一个注意事项是,我没有直接使用git命令行。在Windows上,我使用的是SmartGit,所以如果有人知道该工具的说明,那将是最理想的
如何像上面所述那样正确合并?如果没有其他人克隆branch1或正在使用branch1,您可以在将master更新为upstream/master后,将其置于master之上
- 首先,(SmartGit:Remote/Pull,选择“仅获取”)
- 然后将
master
重置为上游/master
(SmartGit:Local/reset)
- 现在将branch1重设为master的基础(SmartGit:在
Branchs
视图中,您可以右键单击类似master
的分支,然后选择重设标头的基础,将当前标头重设为所选分支master
)
如果必要的话李>
- 最后将
branch1
推(强制推)到origin
(SmartGit:在branchs
视图的上下文菜单中,您可以在本地分支上调用push
和push to
)
重基术语令人困惑,有些可怕。我看到“将基础重新设置到所选分支上”,由于master
是我正在“选择”的分支,因此听起来好像我正在将branch1
合并到master
中。我是在倒读吗?可以将“rebase To”想象为“replay after”,例如,“replay commits frombranch1
after commits inmaster
”@dahlbyk对我来说意味着“从branch1
获取提交,并将其放入master
”。这是正确的吗?我想做相反的事。。。我希望将主控
中的最新更改放入分支1
(以跟上原始主线中的最新进度)。不放入<代码>主控
保持不变branch1
从master
开始更改,然后从那里应用更改。@dahlbyk很抱歉把看起来很小的事情复杂化了,但他说“在master
之上重新设置branch1”。对我来说,这应该是“在branch1
之上的rebasemaster
”,这实际上是使branch1
成为rebase的目标(它是)。我读它的方式让它听起来像“椅子跳到狗身上”(没有意义),而不是“狗跳到椅子上”(有意义)。
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)