2011-05-23 3 views
2

Je vais faire une refonte totale d'un site web. Je les ai déjà sous contrôle de version avec git mais je suis encore assez nouveau avec git et c'est un client important. Il y a tellement de méthodes git que je veux m'assurer que j'utilise la bonne.Comment puis-je brancher mon projet pour m'assurer que je puisse revenir à la version originale?

Ce que je voudrais faire est de prendre mon maître actuel et de le copier dans une branche, puis toutes les nouvelles modifications seront toujours mises à jour sur le maître. Si, pour une raison ou une autre, je dois revenir à l'ancienne version, je peux rappeler cette branche où j'ai bifurqué.

J'ai regardé une tonne d'exemples mais je voudrais que quelqu'un recommande la meilleure méthode à leur avis.

Répondre

2
$ git branch original_master 

Cela créera une nouvelle branche appelée original_master, dérivée du commit actuel. Vous pouvez continuer à travailler sur la branche principale, ou vous pouvez en créer autant que vous le souhaitez, en fusionnant à nouveau comme vous le souhaitez.

Si vous avez besoin de revenir au code original, tout simplement:

$ git checkout original_master 

Et vous serez de retour où vous avez commencé. Tant que vous ne commettez pas ou ne fusionnez pas avec la branche original_master, elle restera exactement telle que vous l'avez créée.

+0

Merci! Ça a du sens pour moi! – qwerty

4

Vous n'avez même pas besoin de créer une branche - Puisque vous voulez simplement marquer une place dans l'historique, utilisez simplement une balise.

Editied commentaires suivants

Par exemple: disons que vous voulez marquer de la tête en cours comme original vous pouvez marquer avec:

git tag original 

original est maintenant une référence abrégée à ce particulier . Et vous pouvez toujours revenir en créant une nouvelle branche:

git checkout -b a_branch original 

qui crée une branche appelée a_branch basée sur original

j'ai écrit au sujet de la tag object précédemment, et aussi sur signing git tags

+0

Votre réponse serait plus complète si vous ajoutiez les commandes appropriées pour faire une étiquette, et pour revenir à une étiquette. –

+0

C'est une meilleure réponse que de créer une nouvelle branche. Les versions de versions sont plus faciles à gérer avec des tags. Les versions en cours de développement sont mieux gérées avec des branches. – kubi

+0

+1 note également que l'utilisation d'une branche invite explicitement le risque que quelqu'un le modifie, alors qu'avec une balise, cela ne peut pas être fait (sauf pour filter-branch --tag-name-filter, mais ça ne sera probablement même pas travailler pour les tags signés) – sehe

Questions connexes