Cómo enviar cambios locales a un repositorio de git remoto en bitbucket

81

Estoy probando Git y Bitbucket.

He creado un repositorio en Bitbucket y he creado una copia local del repositorio y estoy confirmando archivos en él. Parece que no puedo enviar los archivos de mi repositorio local al repositorio remoto.

Esto es lo que estoy haciendo:

git clone https://[email protected]/me/test.git
cd test
touch dummy
git add dummy
git commit dummy -m "my first git commit"
git push

Las salidas de la línea final:

Everything up-to-date

Y cuando inicio sesión en Bitbucket, no puedo ver mi archivo ficticio.

¿Qué estoy haciendo mal?

EDITAR:

Hacer esto funcionó:

 git push origin master:master

¿Alguna explicación sobre la diferencia entre esto y un simple git push?

Joel
fuente
Cualquier persona nueva en git que vea esta pregunta, consulte stackoverflow.com/questions/5713563/…
JGallardo

Respuestas:

102

Úselo en su git push origin masterlugar.

Tiene un repositorio localmente y la inicial git pushes "empujar" hacia él. No es necesario hacerlo (ya que es local) y muestra todo como actualizado. git push origin masterespecifica un repositorio remoto ( origin) y la rama ubicada allí ( master).

Para obtener más información, consulte este recurso .

Chuck Callebs
fuente
2
También debo mencionar que cuando clonas algo, el originrepositorio se define automáticamente.
Chuck Callebs
15

Esta es una medida de seguridad para evitar empujar ramas que no están listas para ser publicadas. En términos generales, al ejecutar "git push", solo se enviarán las ramas locales que ya existen en el servidor con el mismo nombre, o las ramas que se han insertado utilizando la sintaxis localbranch: remotebranch.

Para enviar todas las ramas locales al repositorio remoto, use --all:

git push REMOTENAME --all
git push --all

o especifique todas las ramas que desea enviar:

git push REMOTENAME master exp-branch-a anotherbranch bugfix

Además, es útil agregar -ual comando "git push", ya que esto le dirá si su sucursal local está delante o detrás de la sucursal remota. Esto se muestra cuando ejecuta "git status" después de un git fetch.

soleado256
fuente
8

Estoy con Git descargado de https://git-scm.com/ y configuro ssh, siga la respuesta para obtener instrucciones https://stackoverflow.com/a/26130250/4058484 .

Una vez que se verifica la clave pública generada en mi cuenta de Bitbucket, y al consultar los pasos que se explican en http://www.bohyunkim.net/blog/archives/2518 , descubrí que solo 'git push' está funcionando:

git clone https://[email protected]/me/test.git
cd test
cp -R ../dummy/* .
git add .
git pull origin master 
git commit . -m "my first git commit" 
git config --global push.default simple
git push

Shell responde son los siguientes:

$ git push
Counting objects: 39, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (39/39), done.
Writing objects: 100% (39/39), 2.23 MiB | 5.00 KiB/s, done.
Total 39 (delta 1), reused 0 (delta 0)
To https://[email protected]/me/test.git 992b294..93835ca  master -> master

Incluso funciona para impulsar la fusión de master a gh-pages en GitHub

git checkout gh-pages
git merge master
git push
Chetabahana
fuente
0

Es decir, el segundo parámetro (' master') del git pushcomando " " -

$ git push origin master

se puede aclarar iniciando el pushcomando " " desde news-itemla rama ' '. Hizo que la masterrama local " " fuera empujada a la masterrama remota " . Para obtener más información, consulte

https://git-scm.com/docs/git-push

donde <refspec>en

[<repository> [<refspec>…​]

está escrito para significar " specify what destination ref to update with what source object."

Para su referencia, aquí hay una captura de pantalla de cómo verifiqué esta declaración.

<code> ingrese la descripción de la imagen aquí </code>

Park JongBum
fuente