Git Afficher les branches distantes

Git Afficher les branches distantes
La capacité de Git à créer facilement des branches est une excellente fonctionnalité. Cependant, lorsque vous traitez avec des succursales locales et éloignées, cela peut devenir un peu compliqué. Confirons une situation où nous allons créer notre propre référentiel git qui se comportera comme un repo distant. Ensuite, nous allons créer et commettre des branches dans notre référentiel distant de project_source. Après cela, nous allons cloner le référentiel distant et jouer avec les branches. L'exercice devrait également vous donner une idée de la façon dont les référentiels éloignés comme Github et Bitbucket fonctionnent. Vous pouvez le visualiser comme suit:

Commençons par le référentiel git. Nous allons créer un dossier appelé Project.git et l'initialisez pour devenir le référentiel distant:

$ MKDIR Project.git
PROJET $ CD.git /
$ git init --bare
Initialisé le référentiel git vide dans / utilisateurs / zakh_eecs / _Work / Learngit / git_remote_repository /
projet.git /

Maintenant, allez dans un nouvel emplacement où vous pouvez créer un dossier propre. Créez le dossier project_source et initialisez-le pour Git:

$ mkdir project_source
$ CD Project_source
$ git init
Initialisé le référentiel git vide dans / utilisateurs / zakh_eecs / _Work / Learngit / git_branching_source /
project_source /.git /
$ tactile readme.SMS
$ git add -a
$ git commit -m "engagement initial"
[Maître (racine-engagement) 176134f] Commit initial
1 fichier modifié, 0 insertions (+), 0 suppressions (-)
Créer le mode 100644 Readme.SMS

Le project_setup est un répertoire GIT avec Readme.fichier txt. Cependant, il n'est pas connecté à notre référentiel distant. Configurer le projet.git pour être le référentiel distant de project_source. Nous pouvons y parvenir via la commande suivante:

$ git Remote Ajouter Origin / Users / Zakh_Eecs / _Work / Learngit / GIT_Remote_Repository / Projet.git
$ git push origin maître
Compter les objets: 3, fait.
Écriture d'objets: 100% (3/3), 213 octets | 0 octets / s, fait.
Total 3 (delta 0), réutilisé 0 (delta 0)
Vers / utilisateurs / zakh_eecs / _Work / Learngit / git_remote_repository / projet.git
* [New Branch] Master -> Master

Avec la commande git à distance Add Origin, nous avons créé la connexion entre le projet.git et project_source. Avec la commande Git Push Origin Master, nous avons poussé notre branche principale vers le référentiel distant.

Vérifions nos succursales (toujours dans le dossier project_source):

Branche Git $
* maître
$ Git Branch -r
Origine / Maître
$ Git Branch -a
* maître
télécommandes / origine / maître

La première commande affiche uniquement la branche locale. L'option -r affiche la branche distante. Et l'option -a affiche à la fois local et distant.

Créons quelques branches dans notre répertoire de travail:

$ Git Branch Development
$ git branche hotfix
$ git branche expérimental
$ Git Branch -a
développement
expérimental
hotfix
* maître
télécommandes / origine / maître

Nous avons créé des branches appelées développement, hotfix et expérimental. Ils apparaissent dans notre liste de succursales locale. Mais dans les télécommandes / origine, il n'y a que Master Branch car c'est le seul que nous avons poussé. L'étoile (*) Maître signifie que nous sommes toujours dans la branche maître locale. Entrons dans la branche du développement, engageons les modifications et repoussons ces modifications dans le référentiel distant.

$ GIT CHECKOUT DÉVELOPPEMENT
Passé à la branche «développement»
$ echo abc> readme.SMS
$ git add -a
$ git commit -m "Branche de développement modifiée"
[Développement DD9933E] Branche de développement modifiée
1 fichier modifié, 1 insertion (+)
$ Git Push Origin Development
Compter les objets: 3, fait.
Écriture d'objets: 100% (3/3), 257 octets | 0 octets / s, fait.
Total 3 (delta 0), réutilisé 0 (delta 0)
Vers / utilisateurs / zakh_eecs / _Work / Learngit / git_remote_repository / projet.git
* [Nouvelle branche] Développement -> Développement

Vérifions toutes les branches maintenant:

$ Git Branch -a
* développement
expérimental
hotfix
maître
télécommandes / origine / développement
télécommandes / origine / maître

Nous voyons que nous sommes dans la branche du développement local, mais il y a aussi une branche de développement à distance. Lorsque nous avons poussé nos changements avec le développement de Git Push Origin, il a créé la branche de développement dans les télécommandes / origine.

Permet de sortir du projet_source et de trouver un nouveau endroit où nous pouvons avoir un nouveau dossier. Ici, nous allons cloner le référentiel distant avec la commande suivante:

$ git clone / utilisateurs / zakh_eecs / _work / Learngit / git_remote_repository / projet.git
Clonage dans le «projet»…
fait.

Nous avons cloné une nouvelle copie intitulée Project From Project.git. Accédez au dossier du projet et vérifiez les succursales:

PROJET $ CD
Branche Git $
* maître

Lorsque Git fait un clone initial à partir d'un référentiel distant, il n'obtient que la branche maîtresse. Si nous utilisons l'option -a, nous voyons:

$ Git Branch -a
* maître
télécommandes / origine / tête -> origine / maître
télécommandes / origine / développement
télécommandes / origine / maître

Remarquez qu'il n'y a pas de branche de développement locale. De plus, nous n'avons jamais poussé Hotfix et les branches expérimentales de Project_Source à Project.git, donc nous ne les voyons pas. Le référentiel distant a des branches maître et développement (télécommandes / origine / tête -> Origin / Maître n'est pas une branche, il vous dit simplement où la tête pointe).

Prenons la branche de développement dans notre environnement de travail:

$ git fetch - tout
Origine d'accueil
$ GIT CHECKOUT DÉVELOPPEMENT
Développement de succursales configuré pour suivre le développement de branches distantes à partir d'origine.
Passé à une nouvelle branche «développement»

Si vous utilisez une ancienne version de Git, vous devrez peut-être utiliser:

$ Git Checkout Development Origin / Development

Maintenant, si nous utilisons la commande BRANCH, nous obtenons:

$ Git Branch -a
* développement
maître
télécommandes / origine / tête -> origine / maître
télécommandes / origine / développement
télécommandes / origine / maître

Nous pouvons apporter des modifications à la branche de développement, commettre les modifications, puis la pousser à l'aide de la commande de développement Git Push Origin.

En conclusion

Lorsque vous travaillez avec GitHub et Bitbucket, vous pouvez utiliser HTTPS ou SSH Link pour vous connecter à votre référentiel distant. Vous allez donc définir votre origine sur ces liens. Mais les principes de la branche distante sont les mêmes que ceux décrits ici.

Une étude plus approfondie:

  • https: // git-scm.com / docs / git-branch
  • https: // git-scm.com / book / en / v2 / git-on-the-server-set-up-the-server
  • https: // aide.github.com / articles / ajout-an-existant-project-to-github-using-the-command-line /
  • https: // aide.github.com / articles / poussée-to-a-recul /