git - origen de adición remota vs origen de set-url remoto

413

Creo un nuevo repositorio:

git init
echo "# MESSAGE" >> README.md
git add README.md
git commit -m "first commit"

Luego quiero enviar mi confirmación al repositorio remoto vacío creado en github, así que tengo que configurar el control remoto.

¿Cuál es la diferencia entre usar los siguientes comandos? :

git remote add origin [email protected]:User/UserRepo.git
git remote set-url origin [email protected]:User/UserRepo.git

Al final realizo push:

git push -u origin master

Editar1:

¿Qué sucede cuando llamo al origen remoto de set-url justo después de git init? ¿El origen de set-url remoto crea origen? Si el origen ya existe después de git init, no hay diferencia entre usar esos comandos en mi escenario, ¿verdad?

Irbis
fuente

Respuestas:

509

a continuación se utiliza para agregar un nuevo control remoto:

git remote add origin [email protected]:User/UserRepo.git

a continuación se utiliza para cambiar la url de un repositorio remoto existente:

git remote set-url origin [email protected]:User/UserRepo.git

a continuación empujará su código a la rama maestra del repositorio remoto definido con originy le -upermitirá apuntar su rama local actual a la rama maestra remota:

git push -u origin master

Documentación

Shubham Khatri
fuente
si clono de A a mi local y luego uso "git remote set-url B". ¿eliminará el repositorio en A? Estoy tratando de clonar un repositorio del código de AWS commit to GitLab
Josh
Por lo general, cuando estoy bifurcando un nuevo repositorio, me equivoco y establezco el origen en la parte superior. Terminará necesitando corregirlo con el segundo comandogit remote set-url origin [email protected]:User/UserRepo.git
Honey
-u Permítame señalar su rama local actual a la rama maestra remota . No entiendo por qué me gustaría hacer eso. Quiero decir, digamos que saqué de master, creé una nueva característicaBranch ... cometí mis cambios y luego empujé mis cambios a origin / featureBranch y luego fusioné / tiré esa característica en mi master. <- en este momento no he terminado con mi featureBranch? ¿Por qué lo necesitaría para apuntar a la rama maestra remota? ¿No debería pagar a local / master y luego extraer desde el último origen?
Miel el
La respuesta es muy buena, excepto la explicación de -uflag, que en mi opinión es engañosa. Para una explicación de la -ubandera, recomendaría echar un vistazo a este hilo stackoverflow.com/questions/18867824/…
hoang tran
y -u le permite apuntar su rama local actual a la rama maestra remota: no entiendo esta línea ... ¿A qué se refería?
Lloviendo el
62
  • Cuando se ejecuta git remote add origin [email protected]:User/UserRepo.git, se crea un nuevo control remoto llamado origin.
  • Cuando ejecuta git remote set-url origin [email protected]:User/UserRepo.git, git busca el nombre remoto existente que tiene originy cambia su URL de repositorio remoto. Si git no puede encontrar ningún nombre remoto origin, genera un error fatal: No such remote 'origin'.

Si va a crear un nuevo repositorio, use git remote add origin [email protected]:User/UserRepo.gitpara agregar control remoto.

RAM
fuente
Por favor vea Edit1
Irbis
git initNo agrega ningún origen. Solo se inicializará el repositorio de git. Si clona cualquier repositorio existente, entonces tiene un origen remoto. La recomendación es uso git add, después de git initno set-url.
Ram
@Ram Es obvio no llamar a set-url después de git init ya que no tiene sentido. set-url es cambiar y agregar es agregar un nuevo control remoto.
Santosh
61

A continuación se reiniciará su repositorio local; también borrando repos remotos (es decir, origen):

git init

Luego, a continuación, creará 'origen' si no existe:

git remote add origin [repo-url]

De lo contrario, puede usar el set-urlsubcomando para editar un control remoto existente:

git remote set-url origin [repo-url]

Además, puede verificar los controles remotos existentes con

git remote -v

¡Espero que esto ayude!

vpibano
fuente
1
git remote set-url origin ...en un nuevo repositorio init'd me llegó el mensaje fatal: No existe ese "origen" remoto. git remote add origin ...trabajó.
Robb Vandaveer el
@RobbVandaveer ¡Gracias por la captura! set-url
Actualicé
32

git remote add=> AGREGA un nuevo control remoto.

git remote set-url=> ACTUALIZACIONES control remoto existente.


  1. El nombre remoto que viene después addes un nuevo nombre remoto que no existía antes de ese comando.
  2. El nombre remoto que viene después set-urlya debería existir como un nombre remoto para su repositorio.

git remote add myupstream someurl => el nombre remoto de myupstream no existía ahora creándolo con este comando.

git remote set-url upstream someurl => el nombre remoto ascendente ya existe, solo estoy cambiando su url.


git remote add myupstream https://github.com/nodejs/node => **ADD** If you don't already have upstream
git remote set-url upstream https://github.com/nodejs/node # => **UPDATE** url for upstream
Tomer Ben David
fuente
30

Para agregar un nuevo control remoto, use el git remote addcomando en la terminal, en el directorio en el que está almacenado su repositorio.

El git remote set-urlcomando cambia una URL de repositorio remoto existente.

Básicamente, remote addes agregar uno nuevo, remote set-urles actualizar uno existente

Murf
fuente
28

1. git remote add origin [email protected]:User/UserRepo.git

  • Este comando es el segundo paso en la serie de comandos después de inicializar git en su repositorio de trabajo actual usando git init.
  • Este comando simplemente significa "¡está agregando la ubicación de su repositorio remoto donde desea empujar / extraer sus archivos hacia / desde !! .."
  • Su repositorio remoto podría estar en cualquier lugar en github, gitlab, bitbucket, etc.
  • Aquí originhay un alias / nombre alternativo para su repositorio remoto para que no tenga que escribir la ruta completa del control remoto cada vez y de ahora en adelante declare que usará este nombre (origen) para referirse a su control remoto. Este nombre podría ser cualquier cosa.
  • Para verificar que el control remoto esté configurado correctamente, escriba: git remote -v

    O git remote get-url origin

2. git remote set-url origin [email protected]:User/UserRepo.git

Este comando significa que si accidentalmente empuja a un repositorio incorrecto la primera vez, puede "restablecer la ruta del repositorio remoto" utilizando el comando anterior.

3. git push -u remote master

Este comando simplemente empuja sus archivos al repositorio remoto. Git tiene un concepto de algo conocido como "rama" , por lo que por defecto todo se envía a la rama maestra a menos que se especifique explícitamente una rama alternativa.

Para conocer la lista de todas las ramas que tiene en su tipo de repositorio:git branch

Tahir77667
fuente
10

Prueba esto:

git init  
git remote add origin your_repo.git  
git remote -v  
git status  
Tal Hakmon
fuente
7

No puede llamar remote set-url originjusto despuésgit init , porque el git remote set-urlcomando no creará origen, pero cambia una URL de repositorio remoto existente .

entonces el comando git remote set-urlsolo funcionará si clonaste el repositorio o agregaste manualmente un remoto llamado origen.

puede verificar el control remoto con el comando git remote -v, mostrará la URL remota después del nombre, o si este comando da un error como fatal: Not a git repository (or any of the parent directories): .gitentonces, el repositorio no existe, por lo que debe agregar el origen con el comandogit remote add

1) git remote add

Este comando se usa para agregar un nuevo control remoto, puede usar este comando en la terminal, en el directorio de su repositorio.

El comando git remote add toma dos argumentos:

  1. Un nombre remoto , por ejemplo, origen.
  2. Una URL remota , por ejemplo, https://github.com/user/repo.git

Por ejemplo:

git remote add origin https://github.com/user/repo.git

2)git remote set-url

El comando git remote set-url cambia una URL de repositorio remoto existente.

El comando git remote set-url toma dos argumentos:

  1. Un nombre remoto existente . Por ejemplo, origino upstreamson dos opciones comunes.
  2. Una nueva URL para el control remoto

Por ejemplo, puede cambiar la URL de su control remoto de SSH a HTTPS con el git remote set-urlcomando.

git remote set-url origin https://github.com/USERNAME/REPOSITORY.git

Puede verificar que la URL remota ha cambiado, con el comando git remote -v.

nota: "origen" es una convención que no forma parte del comando. "origen" es el nombre local del repositorio remoto. puede usar cualquier nombre en lugar de "origen".

Por ejemplo:

git remote add myorigin [email protected]:user/repo.git
git remote set-url myorigin https://github.com/user/repo.git

Referencias de github: add remoto , set-url remoto

Haritsinh Gohil
fuente
0

si tiene un proyecto existente y desea agregar la URL del repositorio remoto, entonces debe hacer el siguiente comando

git init

si desea agregar el archivo readme.md, puede crearlo y agregarlo con el siguiente comando.

git add README.md

haz tu primer commit usando el siguiente comando

git commit -m "first commit"

Ahora ha completado todo el proceso del repositorio local, ¿cómo agrega la URL del repositorio remoto? compruebe el comando a continuación, esto es para la url ssh, puede cambiarlo por https.

git remote add origin [email protected]:user-name/repository-name.git

Cómo empujas tu primer commit, mira el siguiente comando :

git push -u origin master
Sumit Jaiswal
fuente