在TortoiseGit下将分支提取到另一个分支

时间:2016-11-21 16:40:28

标签: git tortoisegit

在TortoiseGit下工作(在Windows 7上),想象一下有一个MASTER分支,从中创建了一个SPECIFIC分支。

SPECIFIC包含一些参数更改和一些常规代码更改。

我的问题

如何创建一个新的分支(从MASTER开始),只保留代码更改?

(当然,我会弄清楚代码更改究竟是什么,并将保留。)

我尝试了什么

所以,我从MASTER创建了新分支,并尝试将SPECIFIC重新设置为NEW。所有允许我这样做的是快进合并,这不是很有趣。

我从What I mean by the correct order寻求灵感,但我不知道如何在TortoiseGit界面中获得等同于diff的内容。我还查看了rewrite Git history,它正确地告诉我,rebase非常复杂。

从概念上讲,我真正想做的是$('#fullpage').fullpage({ sectionsColor: ['yellow', 'orange', '#C0C0C0', '#ADD8E6'], navigationTooltips: ['one', 'two', 'three', 'four'], navigation: true, navigationPosition: 'right', fitToSection: false, scrollOverflow:true, afterLoad: function(anchorLink, index){ var loadedSection = $(this); var nextSection = loadedSection.next(); var prevSection = loadedSection.prev(); if(nextSection.hasClass('fp-auto-height') ) { var IScroll = nextSection.find('.fp-scrollable').data('iscrollInstance'); IScroll.scrollTo(0, 0, 0) } if(prevSection.hasClass('fp-auto-height') ) { var IScroll = prevSection.find('.fp-scrollable').data('iscrollInstance'); IScroll.scrollTo(0, IScroll.maxScrollY, 0) } } }); SPECIFIC和NEW,并手动整理差异。

更好的是,NEW可能最终成为相同的SPECIFIC,但只包含两个提交:代码更改和参数更改。

任何

1 个答案:

答案 0 :(得分:0)

你有很多疑问,我试着回答这些问题,希望我不会错过任何重要的事情。

最重要的对话框是您的日志对话框。在这里,您可以选择两个提交(例如,最新的主分支和最新的其他分支),然后选择"比较修订"。然后,您将看到一个对话框,其中显示了所有更改文件,然后您可以逐个进行区分。您还可以选择"将更改显示为统一差异"为了获得统一的差异文件(您可以保存此文件,然后在需要更改时再次应用它,例如使用TortoiseGitMerge;右键单击 - 在工作树文件夹上移动创建的.patch文件并选择"评论/应用单个补丁")。此外,您只需选择一个提交并查看对上一个提交的更改,或者将其与当前工作树进行比较(即,您可以比较每个文件并应用您要保留/创建的更改)。

重新定位(rebase -i)也可以从日志对话框中运行 - 但是它会更改历史记录并将一个分支的提交放到另一个分支上。首先切换到要重新绑定的分支,然后右键单击要将更改重新绑定到的提交/分支,并选择" Rebase"。然后会显示一个rebase -i等效对话框,您可以在其中重新排序,取消选择,编辑和压缩提交。

另一种方法可能是您切换到主服务器,然后选择要应用其更改的所有提交,并选择" Cherry pick commits"在日志对话框上下文菜单中这样你就不会改变你的参数"分支,您可以将这些更改应用于当前分支 - 如果您想将多个提交合并为一个,请选择"压缩"。