2017-03-27 1 views
1

git rebase -i $(HASH) est suspendu .. ne se termine jamais.Le rebasage interactif des commandes de squash est suspendu

commande Voici le

git rebase -i d8c0f59d5d627efb65b47264d5169e3626195839 

Faire cela de squash certains commits .. Comme il est interactif - il demande ouvrir un éditeur deux fois comme prévu.

imprime ensuite quelque chose comme

[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(-) 

Et puis rien ne se passe .. - git rebase attend/bloquait indéfiniment. J'utilise git-shell depuis GitHub sous Windows, dernière version.

Essayé de tracer git rebase comme suit:

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 

Il montre le dernier sortie avant qu'il ne commence suspendus:

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' 

Ainsi, la dernière commande exécutée par git rebase était git notes copy --for-rewrite=rebase et elle a réussi, selon à la trace (temps d'exécution 0.0069s).
Rien ne se passe après.

Je suis un SVN old-school et un git d'apprentissage, mais cela me semble un bug de la version portable de GitHub de git? PS: J'essayais de faire strace à, mais mingw strace sous Windows ne semble pas très utile.

Répondre

2

Au lieu d'utiliser le Git portable intégré dans GitHub Desktop, essayez à nouveau avec:

  • le latest Git for Windows vous pouvez trouver, comme PortableGit-2.12.1-64-bit.7z.exe (dézipper où vous voulez, pas d'installation)
  • puis dans un CMD session, définissez votre PATH avec:

    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\ 
    
  • définir votre HOME dans ce même CMD séance

    set HOME=%USERPROFILE% 
    
  • Enfin, toujours de ce même CMD (avec son chemin simplifié), cd à votre Git repo local, et tentez votre rebasage à nouveau. Effectuez un git rebase --quit first avant de tenter une nouvelle tentative de rebasage.

+0

merci! c'était en effet un bug dans la précédente version portable de git. après l'exécution de 'git rebase' dans le dernier 2.12.1 travaillé comme prévu. – Tagar