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.