2 votes

La branche master et la branche topic ont toutes deux été modifiées

J'ai un fichier dans ma branche master git qui s'appelle 'Readme'. Ce fichier contient le texte suivant :

Voici la branche principale

J'ai créé une branche de sujet appelée 'justatest' et j'ai édité le fichier 'Readme' à l'intérieur de celle-ci. J'ai modifié ce fichier (alors que la branche justatest était extraite) pour y ajouter ce qui suit :

Il s'agit de la branche principale Ce texte ne doit être vu que dans la branche 'justatest'.

Lorsque je suis dans la branche topic 'justatest', il apparaît correctement, mais lorsque je passe à la branche master, voici ce que dit le fichier :

Il s'agit du maître b Ce texte ne doit être vu que dans la branche 'justatest'.

Comme vous pouvez le voir, il effectue les changements dans la branche master même si j'ai une branche topic check out ! POURQUOI ?

Le pire, c'est que si je n'aime pas les changements que j'ai faits dans la branche topic et que je la supprime, les changements RESTENT dans la branche master ! Où est la sécurité là-dedans ?

1voto

matthewh Points 4104

Si vous livrez les modifications dans la branche topic, vous pouvez vérifier la branche master et constater que vos modifications ne sont visibles que dans la branche topic jusqu'à ce que vous les réintégriez dans la branche master.

Ejemplo:

[matthewh@folio temp]$ git branch
* master
[matthewh@folio temp]$ cat Readme 
This is the master branch
[matthewh@folio temp]$ git checkout -b justatest
Switched to a new branch 'justatest'
[matthewh@folio temp]$ echo "This text should only be seen in the justatest branch" >> Readme 
[matthewh@folio temp]$ git commit -am "Modified readme"
[justatest 1afc6c7] Modified readme
 1 files changed, 1 insertions(+), 0 deletions(-)
[matthewh@folio temp]$ git branch
* justatest
  master
[matthewh@folio temp]$ cat Readme 
This is the master branch
This text should only be seen in the justatest branch
[matthewh@folio temp]$ git checkout master
Switched to branch 'master'
[matthewh@folio temp]$ cat Readme 
This is the master branch
[matthewh@folio temp]$ git merge justatest
Updating 88aa000..1afc6c7
Fast-forward
 Readme |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)
[matthewh@folio temp]$ cat Readme 
This is the master branch
This text should only be seen in the justatest branch

1voto

Adam Dymitruk Points 34999

Lorsque vous effectuez des modifications, celles-ci ne font partie d'aucune branche. Ces modifications se trouvent uniquement dans votre dossier de travail. Changer de branche alors que vous avez du travail en cours qui n'a pas encore été validé est autorisé - tant qu'il n'y a pas de conflit avec la version validée des fichiers.

Dans votre cas, c'est encore plus simple. Puisque vous venez de créer la branche, le master et cette nouvelle branche pointent tous deux vers le même commit. Une fois que vous aurez ajouté et livré vos modifications, le changement de branche aura le comportement que vous attendez.

git add -A
git commit -m "my changes"
git checkout master

votre fichier sera le même qu'avant le branchement.

Vous pouvez passer d'une branche à l'autre en effectuant plusieurs fois les opérations suivantes

git checkout -

c'est également le cas pour cd .

Jetez un coup d'œil à http://progit.org/book pour obtenir des informations sur le répertoire de travail et l'index.

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