在TortoiseGit下工作(在Windows 7上),想象一下有一个MASTER分支,从中创建了一个SPECIFIC分支。
SPECIFIC包含一些参数更改和一些常规代码更改。
如何创建一个新的分支(从MASTER开始),只保留代码更改?
(当然,我会弄清楚代码更改究竟是什么,并将保留。)
所以,我从MASTER创建了新分支,并尝试将SPECIFIC重新设置为NEW。所有允许我这样做的是快进合并,这不是很有趣。
我从寻求灵感,但我不知道如何在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,但只包含两个提交:代码更改和参数更改。
任何
答案 0 :(得分:0)
你有很多疑问,我试着回答这些问题,希望我不会错过任何重要的事情。
最重要的对话框是您的日志对话框。在这里,您可以选择两个提交(例如,最新的主分支和最新的其他分支),然后选择"比较修订"。然后,您将看到一个对话框,其中显示了所有更改文件,然后您可以逐个进行区分。您还可以选择"将更改显示为统一差异"为了获得统一的差异文件(您可以保存此文件,然后在需要更改时再次应用它,例如使用TortoiseGitMerge;右键单击 - 在工作树文件夹上移动创建的.patch文件并选择"评论/应用单个补丁")。此外,您只需选择一个提交并查看对上一个提交的更改,或者将其与当前工作树进行比较(即,您可以比较每个文件并应用您要保留/创建的更改)。
重新定位(rebase -i
)也可以从日志对话框中运行 - 但是它会更改历史记录并将一个分支的提交放到另一个分支上。首先切换到要重新绑定的分支,然后右键单击要将更改重新绑定到的提交/分支,并选择" Rebase"。然后会显示一个rebase -i
等效对话框,您可以在其中重新排序,取消选择,编辑和压缩提交。
另一种方法可能是您切换到主服务器,然后选择要应用其更改的所有提交,并选择" Cherry pick commits"在日志对话框上下文菜单中这样你就不会改变你的参数"分支,您可以将这些更改应用于当前分支 - 如果您想将多个提交合并为一个,请选择"压缩"。