Dus*_*ilk 7 git atlassian-sourcetree
我使用GIT和Sourcetree作为gui.
我有两个分支 - 主和功能01.我现在想要在feature-01上覆盖master上的所有内容.
在必须回滚master上的一些更改后,我不得不这样做.然而,我回滚了新分支上的更改,让分支成为100%,我想要主人,但现在当我合并两个 - 主人保持所有回滚的更改,它应该像分支中一样丢弃: /
您可以执行以下操作:
feature-01分支机构:git merge --strategy=ours mastergit merge feature-01第一个命令将从两个分支创建一个新的(合并)提交,但master使用该--strategy=ours选项忽略所有内容。然后,第二个命令将“前进”master到这个新提交。
此时,您的feature内容将位于master. 使用此选项,您无需“重置”遥控器或任何类似操作;它只会投入到master您所做的所有工作中feature。
这在 SourceTree 中可能吗?
不,这不可能直接实现,因为merge --oursSourcetree 不支持 a。
(我已经使用最新的 2.1.11.0 进行了测试,嵌入了 Git 2.14.1,2017 年 9 月)。
请参阅SRCTREEWIN-1237(...从 2013 年开始!)
我需要使用我们的策略,即将 myBranch 合并到 master 中,放弃 myBranch 上的任何更改
git merge -s ours myBranch
Run Code Online (Sandbox Code Playgroud)
当合并两个分支时,这仍然不可用:
正如本文中提到的,您需要定义一个自定义操作:

这将允许您模拟merge --ours以下序列的步骤
git checkout feature-01
git merge --strategy=ours master
git checkout master
git merge feature-01
Run Code Online (Sandbox Code Playgroud)
SourceTree 支持checkout和 simple 。merge自定义操作允许您执行该merge --ours步骤。
然后,master内容将被feature-01内容取代。
完全来自 SourceTree。
对于 Mercurial,在“替换 a 的内容hg branch”之后,您需要为命令创建自定义操作(如上所示)hg branch -f(该-f选项在普通对话框中不可用branch)
Fél*_*net -1
您可以删除主分支(它只是标记到提交的名称),然后在您想要的位置重新创建它:
git branch -d master // this will delete the branch
git checkout feature-01
git branch master // this will recreate it where you are checked out.
Run Code Online (Sandbox Code Playgroud)
如果您共享了此存储库,请小心,您必须清理遥控器,并且您可能应该与使用该存储库/负责该存储库的人交谈,因为您将重写历史记录。
| 归档时间: |
|
| 查看次数: |
4535 次 |
| 最近记录: |