Comment revenir en 'master' avec git?

135

J'ai fait mon premier engagement; puis créé une branche (disons branch1).

Dans cette branche, j'ai créé un répertoire «exemple» et je me suis engagé. Dans GitHub, je vois ma nouvelle branche et le nouveau répertoire «exemple» que j'ai ajouté.

Maintenant, je me demande comment puis-je «synchroniser» avec le master; et supprimez donc le dossier «exemple» (car il n'existe pas sur le maître).

EDIT: find . -type d -empty -exec touch {}/.gitignore \; fait le travail.

Disco
la source

Réponses:

239

Vous devez vérifier la succursale:

git checkout master

Consultez les feuilles de triche Git pour plus d'informations.

Edit: Veuillez noter que git ne gère pas les répertoires vides, vous devrez donc les gérer vous-même. Si votre répertoire est vide, supprimez-le directement.

Matthew Farwell
la source
"Déjà sur le maître" mais mon répertoire "exemple" est toujours là. Je veux me synchroniser avec le maître (donc ne pas avoir ce dossier car il n'existe pas dans la branche master)
Disco
# Sur le maître de la branche rien à valider (nettoyage du répertoire de travail)
Disco
@Disco: J'ai déjà eu ce problème - s'il n'est certainement pas suivi dans l'index, vous pouvez simplement supprimer le répertoire localement et vous le récupérerez quand vous git checkout branch1.
Platinum Azure le
1
Mmmh tant pis; n'y a-t-il pas une option pour cela? Je ne peux pas garder une trace de tout répertoire dans ma tête
Disco
6

Selon le Cheatsheet Git, vous devez d'abord créer la branche

git branch [branchName]

puis

git checkout [branchName]
blacksta500
la source
2
Je pense que vous pourriez revoir la question
eli
2

Pour supprimer la branche, vous devez cacher les modifications effectuées sur la branche ou vous devez valider les modifications que vous avez apportées à la branche. Suivez les étapes ci-dessous si vous avez apporté des modifications à la branche actuelle.

  1. git stash ou git commit -m "XXX"
  2. git checkout master
  3. git branch -D merchantApi

Remarque: les étapes ci-dessus supprimeront la branche localement.

Sachin Sridhar
la source
1

J'essaye de comprendre ce qui se passe là-bas. Y a-t-il quelque chose dans votre dossier «exemple»? Git ne suit pas les dossiers vides.

Si vous avez créé une branche et basculé vers votre nouvelle branche, puis créé un nouveau dossier et laissé vide, puis fait "git commit -a", vous n'obtiendrez pas ce nouveau dossier dans le commit.

Ce qui signifie qu'il n'est pas suivi, ce qui signifie que la vérification d'une branche différente ne la supprimera pas.

Dan Ray
la source
git a initié mon répertoire (/ home / dev) puis j'ai fait "commit -a" et poussé vers github. Ensuite, j'ai créé une nouvelle succursale; créer un répertoire 'exemple' avec quelques fichiers à l'intérieur et valider la branche. Maintenant, je veux revenir à l'étape initiale (master) sans le répertoire «exemple» que j'ai créé dans la nouvelle branche.
Disco du
également dans la branche principale, le répertoire 'exemple' n'est pas là (comme je le vois dans github)
Disco
mise à jour: j'avais un dossier vide dans le répertoire d'exemple; est-ce pourquoi il me montre toujours le répertoire? Comment s'en débarrasser en utilisant git
Disco
Vous ne le faites pas. git ne le sait pas. Supprimez-le simplement. L'extraction de master devrait supprimer tous les fichiers qui se trouvent dans la branche mais pas dans master de votre répertoire de travail.
Dan Ray le
1

Vous mènera à la branche principale.

git checkout master

Pour passer à d'autres branches, faites (ignorez les crochets, c'est juste pour mettre l'accent)

git checkout [the name of the branch you want to switch to]

Pour créer une nouvelle branche, utilisez -b comme ceci (ignorez les crochets, c'est juste pour mettre l'accent)

git checkout -b [the name of the branch you want to create]

Dapo Momodu
la source