83 votes

Obtenir que les branches git existantes suivent les branches distantes

Mon habitude de flux de travail lorsque vous travaillez avec git, c'est quelque chose comme ceci:

  1. créer un dépôt local
  2. faire un peu de travail dans ce référentiel, d'ajouter ou de modifier des fichiers etc.
  3. décide que je veux une centrale à distance de l'emplacement du référentiel, et de créer un
  4. pousser tous les commits de mon dépôt local pour ce nouveau dépôt distant

Maintenant, cependant, je veux être en mesure d' push et pull de ce dépôt distant sans avoir à spécifier l'endroit où je suis en poussant ou en tirant à partir; je veux que mon maître local pour suivre le maître.

La bonne façon de le faire, ce n'est pas clair pour moi, et j'ai été incapable de le déterminer à partir de la documentation, même si elle ne devrait pas vraiment être plus d'une commande.

Parce que c'est quelque chose qui n'est jamais fait une seule fois par référentiel, j'ai généralement l'un des deux simples, mais hacky, solutions:

  1. utilisé git clone de faire un nouveau dépôt local, et de supprimer l'ancien. Après git le clonage, le nouveau référentiel est le programme d'installation pour le suivi de l'origine.
  2. modifié manuellement .git/config pour faire de la piste principale de l'origine.

Je pense que je devrais être en mesure d'exécuter une commande, probablement une certaine forme de git remote pour l'installation d'un référentiel existant d'avoir de la piste principale à distance de maître. Quelqu'un peut-il me dire ce que la commande est?

157voto

Jorge Points 1359

Utilisez l'argument set-upstream:

 git branch --set-upstream local-branch-name origin/remote-branch-name
 

L'exécution de la commande ci-dessus met à jour votre fichier .git / config correctement et vérifie même avec cette sortie:

"Nom de branche locale de branche configuré pour suivre le nom d'origine de branche distante de branche distante."

19voto

Mike Points 451

git help remote devrait vous montrer ce que vous devez savoir. Je pense que ce que tu veux c'est

 git remote add [remote-name] [remote-url]

# Set a local branch to follow the remote
git config branch.[branch-name].remote [remote-name]

# Set it to automatically merge with a specific remote branch when you pull
git config branch.[branch-name].merge [remote-master]
 

Vous pouvez également éditer manuellement .git / config pour les configurer.

10voto

bcolfer Points 165

Vous pouvez également l'utiliser si vous souhaitez créer une nouvelle branche locale pour suivre une branche distante:

 git checkout --track -b [branch_name] --track origin[or other remote name]/[remote_branch_name] 
 

ou même mieux:

 git checkout -t origin/branch_name
 

7voto

fazineroso Points 524

Sur les nouvelles versions de git, vous pouvez utiliser

 git branch --track origin/branch_name
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X