2012-10-06 14 views
5

Esto es lo que he intentado. Esperemos que alguien tenga un momento para ver esto y sugerir algo. ¡Gracias!No se puede continuar git rebase

Editar: Creo que he respondido a mi propia pregunta: https://stackoverflow.com/a/12760672/906794

  • Clon mi repo

    $ git clone leoj3n/roots 
    Cloning into 'roots'... 
    remote: Counting objects: 3177, done. 
    remote: Compressing objects: 100% (1362/1362), done. 
    remote: Total 3177 (delta 2117), reused 2761 (delta 1792) 
    Receiving objects: 100% (3177/3177), 1.40 MiB | 609 KiB/s, done. 
    Resolving deltas: 100% (2117/2117), done. 
    Checking out files: 100% (146/146), done. 
    
  • Cambie el directorio

    $ cd roots 
    
  • Verificar estado

    roots(parent) $ git status 
    # On branch parent 
    nothing to commit (working directory clean) 
    
  • Añadir aguas arriba

    roots(parent) $ git remote add upstream retlehs 
    roots(parent) $ git remote 
    origin 
    upstream 
    
  • Fetch

    roots(parent) $ git fetch --all 
    Fetching origin 
    Fetching upstream 
    remote: Counting objects: 70, done. 
    remote: Compressing objects: 100% (30/30), done. 
    remote: Total 56 (delta 28), reused 51 (delta 23) 
    Unpacking objects: 100% (56/56), done. 
    From git://github.com/retlehs/roots 
    * [new branch]  classic -> upstream/classic 
    * [new branch]  grunt  -> upstream/grunt 
    * [new branch]  improve_sidebar_config -> upstream/improve_sidebar_config 
    * [new branch]  master  -> upstream/master 
    * [new branch]  vcard_refactor -> upstream/vcard_refactor 
    * [new tag]   5.1.0  -> 5.1.0 
    * [new tag]   5.2.0  -> 5.2.0 
    * [new tag]   6.0.0  -> 6.0.0 
    * [new tag]   6.1.0  -> 6.1.0 
    
  • Rebase parent en upstream/master

    roots(parent) $ git rebase -i upstream/master 
    
    <<<<<< BEGIN WHAT I HAD IN vi >>>>>> 
    pick 4904103 improved url cleaning for child themes 
    s 986e6de added some is_child_theme() checks 
    s 2860aee urls now look like /child/css/* 
    s 4282ee0 Look for files in child, then in roots 
    p bf9a89a Now using Theme Hook Alliance 
    f 56d1211 Added THA utility script 
    f 7702269 Added missing hooks 
    f 14204d8 Support for multisite 
    f aca4577 No more multisite rewrites 
    f 8144b83 Revert some changes 
    pick fbf1dec Added filter to disable sidebars 
    pick 9b77e72 Added font-awesome 
    f 161864d Remove test code 
    <<<<<< END WHAT I HAD IN vi >>>>>> 
    

    Entonces me sale este error:

    error: could not apply 4904103... improved url cleaning for child themes 
    
    When you have resolved this problem, run "git rebase --continue". 
    If you prefer to skip this patch, run "git rebase --skip" instead. 
    To check out the original branch and stop rebasing, run "git rebase --abort". 
    Could not apply 4904103... improved url cleaning for child themes 
    
  • resolver los conflictos

    roots(parent|REBASE-i) $ git mergetool 
    merge tool candidates: opendiff kdiff3 tkdiff xxdiff meld tortoisemerge gvimdiff diffuse ecmerge p4merge araxis bc3 emerge vimdiff 
    Merging: 
    lib/config.php 
    
    Normal merge conflict for 'lib/config.php': 
        {local}: modified file 
        {remote}: modified file 
    Hit return to start merge resolution tool (opendiff): 
    2012-10-06 05:10:11.363 FileMerge[22088:707] Unable to load platform at path /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform 
    2012-10-06 05:10:11.364 FileMerge[22088:707] Unable to load platform at path /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform 
    

    nota que consigo algunos errores al ejecutar opendiff.

  • Terminar de resolución de conflictos, por lo que continuará

    roots(parent|REBASE-i) $ git rebase --continue 
    You must edit all merge conflicts and then 
    mark them as resolved using git add 
    
  • eh? Comprobar el estado:

    roots(parent|REBASE-i) $ git status 
    # Not currently on any branch. 
    # You are currently rebasing. 
    # (all conflicts fixed: run "git rebase --continue") 
    # 
    # Changes to be committed: 
    # (use "git reset HEAD <file>..." to unstage) 
    # 
    # modified: lib/config.php 
    # modified: lib/htaccess.php 
    # 
    # Untracked files: 
    # (use "git add <file>..." to include in what will be committed) 
    # 
    # lib/config.php.orig 
    
  • eliminar el archivo de copia de seguridad de combinación

    roots(parent|REBASE-i) $ rm lib/config.php.orig 
    
    roots(parent|REBASE-i) $ git status 
    # Not currently on any branch. 
    # You are currently rebasing. 
    # (all conflicts fixed: run "git rebase --continue") 
    # 
    # Changes to be committed: 
    # (use "git reset HEAD <file>..." to unstage) 
    # 
    # modified: lib/config.php 
    # modified: lib/htaccess.php 
    # 
    
  • Continuar rebase

    roots(parent|REBASE-i) $ git rebase --continue 
    You must edit all merge conflicts and then 
    mark them as resolved using git add 
    
  • Hmm, trate de añadir todo lo

    roots(parent|REBASE-i) $ git add -A 
    
    roots(parent|REBASE-i) $ git rebase --continue 
    You must edit all merge conflicts and then 
    mark them as resolved using git add 
    

Esto es cuando me rendí e hice este S.O. pregunta.


Aquí hay alguna información más:

roots(parent|REBASE-i) $ git diff-files --ignore-submodules 
:100644 100644 f65cf1dc4573c51e54d7cf3772d06caf96726616 0000000000000000000000000000000000000000 assets/js/vendor/jquery-1.8.2.min.js 

creo que puede tener que ver con la mergetool opendiff-cuenta de los errores anteriores.

roots(parent|REBASE-i) $ git config --list 
user.name=xxxxxx 
user.email=xxxxxx 
credential.helper=osxkeychain 
alias.pu=!git fetch origin -v; git fetch upstream -v; git merge upstream/master 
alias.co=checkout 
alias.ci=commit 
alias.rb=rebase 
color.ui=auto 
core.excludesfile=/Users/xxxxxx/.gitignore_global 
core.repositoryformatversion=0 
core.filemode=true 
core.bare=false 
core.logallrefupdates=true 
core.ignorecase=true 
core.precomposeunicode=false 
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/* 
[email protected]:leoj3n/roots.git 
branch.parent.remote=origin 
branch.parent.merge=refs/heads/parent 
remote.upstream.url=git://github.com/retlehs/roots.git 
remote.upstream.fetch=+refs/heads/*:refs/remotes/upstream/* 

Sorprendentemente, yo era capaz de rebasar en mi máquina Windows utilizando TortoiseMerge.

+1

Desde el mensaje de estado que aparece, asumo que debe ejecutar al menos git 1.7.12, en cuyo caso se emite el mensaje "Debe editar todos los conflictos de fusión y luego [...]" cuando 'git diff-files --quiet --ignore-submodules' sale con un código de salida distinto de cero. ¿Podría simplemente ejecutar 'git diff-files --ignore-submodules' y pegar el resultado en su pregunta? –

+0

Ver la edición al final. – leoj3n

+0

Muy extraño: no estoy seguro de por qué 'assets/js/vendor/jquery-1.8.2.min.js' está apareciendo en la salida' git diff-files', pero no 'git status'. ¿Ese archivo está presente en el árbol de trabajo en este momento? –

Respuesta

3

Parece que el problema se debió a que los tiempos de archivo estaban desactivados. Esta cesión temporal está en una unidad de red y se accede a/modificada por equipos Windows y Mac ...

Todo lo que tenía que hacer, al parecer, es cambiar un elemento de configuración única ...

git config --global core.trustctime false 

El solución fue encontrada en https://stackoverflow.com/a/5255700/906794

+2

Quién podría haber pensado. Me alegro de que haya encontrado su respuesta – Ikke

+0

También vea http://www.git-tower.com/blog/make-git-rebase-safe-on-osx – leoj3n