当我进行交互式rebase时,例如gitrebase-iHEAD~3rebase交互式编辑器(在我的例子中是vim)打开让我编辑要rebase的提交pickc843ea2SetVimcolumnlimitto80(OSX)pickfc32eacAddBashaliasfor`pbcopy`(OSX)....如果我现在决定要中止rebase并使用:q退出vim,rebase无论如何都会开始。我在Windows上使用git版本1.9.0.msysgit.0。当然,我可以只删除所有pick行,但如果我重新设置更长的历史记录,可能需要做很多事情。还有别的办法吗?如何退出rebase交互式编辑器
我注意到以下两个git命令block有不同的行为,但我不明白为什么。我有一个A和一个B分支,它们与一个commitfork---COMMIT---(A)\---(B)我想在最新的A上rebaseB分支(并在B分支上提交)---COMMIT---(A)\---(B)如果我这样做没问题:checkoutBrebaseA但如果我这样做:checkoutBrebase--ontoBA它根本不起作用,什么也没有发生。我不明白为什么这两种行为不同。PhpStormGIT客户端使用第二种语法,因此似乎完全被破坏了,这就是为什么我要求这个语法问题。 最佳答案
我注意到以下两个git命令block有不同的行为,但我不明白为什么。我有一个A和一个B分支,它们与一个commitfork---COMMIT---(A)\---(B)我想在最新的A上rebaseB分支(并在B分支上提交)---COMMIT---(A)\---(B)如果我这样做没问题:checkoutBrebaseA但如果我这样做:checkoutBrebase--ontoBA它根本不起作用,什么也没有发生。我不明白为什么这两种行为不同。PhpStormGIT客户端使用第二种语法,因此似乎完全被破坏了,这就是为什么我要求这个语法问题。 最佳答案
我有一个公共(public)存储库的分支,我正在尝试使用原始存储库中的当前提交更新我的分支:$gitfetchremote:Countingobjects:24,done.remote:Compressingobjects:100%(20/20),done.remote:Total20(delta12),reused0(delta0)Unpackingobjects:100%(20/20),done.Fromgit://github.com/path_to/repo9b70165..22127d0master->$/master$gitrebasefatal:Neededasingle
我有一个公共(public)存储库的分支,我正在尝试使用原始存储库中的当前提交更新我的分支:$gitfetchremote:Countingobjects:24,done.remote:Compressingobjects:100%(20/20),done.remote:Total20(delta12),reused0(delta0)Unpackingobjects:100%(20/20),done.Fromgit://github.com/path_to/repo9b70165..22127d0master->$/master$gitrebasefatal:Neededasingle
在执行gitrebase时,在解决冲突时,我经常难以弄清楚“本地”和“远程”发生了什么。有时我的印象是他们从一个提交到下一个提交交换了立场。这可能(肯定)是因为我还没有正确理解。rebase时,谁是“本地”,谁是“远程”?(我使用P4Merge来解决冲突) 最佳答案 TL;DR;总结(如Benubirdcomments),当:gitcheckoutAgitrebaseB#rebaseAontopofBlocal是B(rebase到),remote是A和:gitcheckoutAgitmergeB#mergeBintoAlocal是A
在执行gitrebase时,在解决冲突时,我经常难以弄清楚“本地”和“远程”发生了什么。有时我的印象是他们从一个提交到下一个提交交换了立场。这可能(肯定)是因为我还没有正确理解。rebase时,谁是“本地”,谁是“远程”?(我使用P4Merge来解决冲突) 最佳答案 TL;DR;总结(如Benubirdcomments),当:gitcheckoutAgitrebaseB#rebaseAontopofBlocal是B(rebase到),remote是A和:gitcheckoutAgitmergeB#mergeBintoAlocal是A
我执行了这样的rebase:gitrebase--ontomasternew_background_processingexport_background_processing这没有达到我想要的效果,所以我进行了重置:gitreset--hardHEAD@{1}我让我的分支恢复到原来的状态,但是当我输入gitstatus时我收到了这条消息:#Youarecurrentlyrebasingbranch'export_background_processing'on'e378641'.如何完全取消该rebase?不确定这本身意味着什么。 最佳答案
我执行了这样的rebase:gitrebase--ontomasternew_background_processingexport_background_processing这没有达到我想要的效果,所以我进行了重置:gitreset--hardHEAD@{1}我让我的分支恢复到原来的状态,但是当我输入gitstatus时我收到了这条消息:#Youarecurrentlyrebasingbranch'export_background_processing'on'e378641'.如何完全取消该rebase?不确定这本身意味着什么。 最佳答案
我正在处理两个(私有(private))功能分支。a--b--c在处理这些分支一段时间后,我发现我需要在Branch1中对Branch2进行更改。我想将Branch2中的更改重新设置为Branch1。我想以以下内容结束:a--b--c我很确定我需要将第二个分支rebase到第一个分支,但我不完全确定正确的语法以及我应该checkout哪个分支。这个命令会产生预期的结果吗?(Branch1)$gitrebase--ontoBranch1Branch2 最佳答案 切换到Branch2gitcheckoutBranch2在Branch1更