2017-03-27 99 views
1

git rebase -i $(HASH)掛起..永遠不會完成。交互式重新壓縮以壓縮提交掛起

這裏的命令

git rebase -i d8c0f59d5d627efb65b47264d5169e3626195839 

這樣做是爲了捉一些在提交的。由於它是互動 - 它要求打開一個編輯器兩倍的預期。

然後打印像

[detached HEAD fc62e0b3] AIRFLOW-1012 - 
add run_as_script parameter 
Author: Tagar 
Date: Sun Mar 19 12:50:50 2017 -0600 
2 files changed, 14 insertions(+), 3 deletions(-) 

然後..沒有發生 - git rebase等待/無限期掛起。

我在Windows上使用GitHub的git-shell最新版本。

努力探索git rebase如下:

set -x; GIT_TRACE=2 GIT_CURL_VERBOSE=2 GIT_TRACE_PERFORMANCE=2 \ 
GIT_TRACE_PACK_ACCESS=2 GIT_TRACE_PACKET=2 GIT_TRACE_PACKFILE=2 \ 
GIT_TRACE_SETUP=2 GIT_TRACE_SHALLOW=2 \ 
git rebase -i d8c0f59d5d627efb65b47264d5169e3626195839 

它顯示了最新的輸出啓動前懸:

20:03:58.266245 trace.c:435    performance: 13.236119523 s: 
git command: 
'C:\Users\myuser1\AppData\Local\GitHubPortableGit_f02737a78695063deace08e96d5042710d3e32db\mingw32\libexec\git-core\git.exe' 
'commit' '-n' '--amend' '-F' '.git/SQUASH_MSG' '-e' 20:03:58.293248 
run-command.c:350  trace: run_command: 'notes' 'copy' 
'--for-rewrite=rebase' 
20:03:58.371255 trace.c:333    setup: 
git_dir: .git 
20:03:58.372255 trace.c:334    setup: 
git_common_dir: .git 
20:03:58.372255 trace.c:335    setup: 
worktree: C:/Users/myuser1/Documents/GitHub/incubator-airflow 
20:03:58.372255 trace.c:336    setup: cwd: 
C:/Users/myuser1/Documents/GitHub/incubator-airflow 
20:03:58.372255 trace.c:337    setup: prefix: (null) 
20:03:58.372255 git.c:371    trace: built-in: git 'notes' 
'copy' '--for-rewrite=rebase' 
20:03:58.372255 trace.c:435    
performance: 0.006984451 s: git command: 
'C:\Users\myuser1\AppData\Local\GitHub\PortableGit_f02737a78695063deace08e96d5042710d3e32db\mingw32\libexec\git-core\git.exe' 
'notes' 'copy' '--for-rewrite=rebase' 

因此,由git rebase最近執行的命令是git notes copy --for-rewrite=rebase,它成功了,根據跟蹤(運行時間0.0069s)。
之後沒有任何反應。

我是一個老派的SVN和學習git,但是這對我來說似乎是GitHub的便攜版git的一個bug? PS:我正在試圖做strace,但在Windows下mingw的strace看起來不太有用。

回答

2

而不是使用嵌入在GitHub上桌面便攜式的Git,有再試一次:

  • latest Git for Windows你可以找到,像PortableGit-2.12.1-64-bit.7z.exe(解壓任何你想要的,沒有設置)
  • 然後在CMD會議上,設定你的PATH有:

    set G=c:\path\to\latest\git 
    set PATH=%G%\bin;%G%\usr\bin;%G%\mingw64\bin 
    set PATH=%PATH%;C:\windows\system32;C:\windows\System32\Wbem;C:\windows\System32\WindowsPowerShell\v1.0\ 
    
  • 設定HOME在同一CMD session

    set HOME=%USERPROFILE% 
    
  • Finally,still來自that same CMD(與its simplified PATH),cd到您Git local repo和again try您rebase。
    在重新嘗試rebase之前先做git rebase --quit first

+0

謝謝!它確實是以前的便攜式版本的git中的一些錯誤。在最新的2.12.1中運行'git rebase'後按預期工作。 – Tagar