Git ‘nothing to commit, working tree clean’

publicado por: Anonymous

Obtuve un proyecto de laravel por medio de git clone, hice una nueva branch para no modificar la original, pero al momento de dar git commit me marca:

nothing to commit

He checado y me encuentro en la carpeta correcta, ¿por qué no puedo hacer commit?

solución

Creo que lo que no estás entendiendo bien sobre el tema de los branches en Git es que el hecho de crear un nuevo branch no es razón suficiente por sí misma para considerar que hay algún cambio en el proyecto. Tal vez con un ejemplo puedas enterdelo mejor. Probemos con un proyecto “test” y con un único archivo llamado “archivo.txt”:

$ mkdir test
$ cd test/
$ git init
Initialized empty Git repository in /home/cesar/test/.git/
$ echo "¡No modificar este archivo en el branch master!" > archivo.txt
$ git status
On branch master

Initial commit

Untracked files:
  (use "git add <file>..." to include in what will be committed)

    archivo.txt

nothing added to commit but untracked files present (use "git add" to track)
$ cat archivo.txt 
¡No modificar este archivo en el branch master!
$ git add .
$ git status
On branch master

Initial commit

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)

    new file:   archivo.txt

$ git commit -m "Primer release"
[master (root-commit) 21074dd] Primer release
 1 file changed, 1 insertion(+)
 create mode 100644 archivo.txt
$ git branch 
* master

Muy bien, solo tenemos el branch master por ahora. Imagina que este es mi proyecto y tu lo clonas desde algún repositorio remoto (GitHub, Bitbucket, etc.):

$ git clone .... 

Decides crear un nuevo branch para no modificar el branch master:

$ git checkout -b paloma
Switched to a new branch 'paloma'
$ git status
On branch paloma
nothing to commit, working tree clean

Como puedes ver, tu “working tree” está limpio (porque no has modificado o agregado nada nuevo) y, por lo tanto no vas a poder hacer commit:

$ git commit -m "Mi branch"
On branch paloma
nothing to commit, working tree clean

Pero, ¿qué tal si modificas el archivo?:

$ echo " ¡Jódete jefe!" >> archivo.txt
$ git status
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

    modified:   archivo.txt

no changes added to commit (use "git add" and/or "git commit -a")
$ git add .
$ git commit -m "Que se joda el jefe, he modificado el archivo en mi propio branch"
[paloma 81a5fa3] Que se joda el jefe, he modificado el archivo en mi propio branch
 1 file changed, 1 insertion(+)
$ git branch
  master
* paloma

Ahora sí, puedes hacer push y crear tu branch con tus cambios en el repositorio del cual has clonado previamente. Espero que te haya ayudado.

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *