windows - 如何从上游分支 merge ?

标签 windows git branching-and-merging smartgit

这是我的 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)

我想做的事:

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

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

如何像上面描述的那样正确 merge ?

最佳答案

如果没有其他人克隆或正在使用branch1,您可以rebase 一旦您将 master 更新为上游/master,它就位于 master 之上。

  • 首先,fetch upstream (SmartGit:远程/pull ,选择“仅获取”)
  • 然后将 master 重置为 upstream/master(SmartGit:本地/重置)
  • 现在在 master 之上重新设置分支 1(SmartGit:在 Branches View 中,您可以右键单击 master 等分支,然后选择Rebase HEAD 将当前 HEAD 重新设置到所选分支 master)
    Resolve merge conflicts如果需要的话。
  • 最后将branch1推送(强制推送)到origin(SmartGit:在Branches View 的上下文菜单中,您可以调用本地分支上的 PushPush To)。

enter image description here

关于windows - 如何从上游分支 merge ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19715001/

相关文章:

git - 如何通过 http 设置 git?

SVN-自动将中继合并到分支

mercurial - 将多个 Mercurial 分支 merge 在一起

c++ - 在已编译的 ROOT (CERN) 应用程序中将 TCanvas 绘制到屏幕上

git - 如何设置 GoCD 来处理使用 SSH key 进行身份验证的私有(private) git 存储库?

c++ - Windows Media Foundation - 右扬声器不工作

git - 如何将文件夹中的所有文件推送到所有git分支

mercurial - Mercurial中的 merge 问题

python - 如何在 Windows 10 上运行的 PyCharm 上使用 PyPy(适用于 python 3.6)?

c++ - HCURSOR 从另一个窗口,可能吗?