Tester avec une nouvelle branche orpheline
Dans cette étape, nous allons créer une nouvelle branche "orpheline". Une branche orpheline est une branche qui commence sans historique des branches précédentes. C'est comme démarrer une toute nouvelle ligne de temps dans votre machine à remonter le temps. Cela est utile pour des choses telles que les branches de documentation ou les branches gh-pages
pour les sites web, où vous ne voulez pas inclure l'historique de votre code principal.
Assurez-vous d'être dans le répertoire ~/project/my-time-machine
.
cd ~/project/my-time-machine
Maintenant, créons une nouvelle branche orpheline appelée new-start
:
git checkout --orphan new-start
Vous devriez voir une sortie similaire à celle-ci :
Switched to a new branch 'new-start'
Nous sommes maintenant sur la branche new-start
. Remarquez que les fichiers de la branche master
sont toujours présents dans votre répertoire de travail. C'est parce que git checkout --orphan
prépare votre répertoire de travail et l'index pour un nouveau commit racine, mais il ne supprime pas les fichiers existants.
Vérifions l'état :
git status
Vous devriez voir quelque chose comme ceci :
On branch new-start
Untracked files:
(use "git add <file>..." to include in what will be committed)
message.txt
nothing added to commit but untracked files present (use "git add" to track)
Git considère message.txt
comme un fichier non suivi car l'historique de la branche new-start
est complètement séparé de celui de master
.
Pour vraiment commencer à neuf sur cette branche orpheline, nous supprimons généralement les anciens fichiers puis ajoutons le nouveau contenu pour cette branche. Supprimons le fichier message.txt
:
rm message.txt
Maintenant, vérifions à nouveau l'état :
git status
Vous devriez voir :
On branch new-start
No commits yet
nothing to commit (create/copy files and use "git add" to track)
Le répertoire de travail est maintenant propre, et nous sommes prêts à créer le premier commit sur notre nouvelle ligne de temps indépendante.
Créons un nouveau fichier spécifique à cette branche :
echo "This is a fresh start!" > readme.md
Ajoutons le nouveau fichier à la zone de préparation :
git add readme.md
Et enfin, créons le premier commit sur la branche new-start
:
git commit -m "Initial commit for new-start branch"
Vous devriez voir une sortie similaire à celle-ci :
[new-start (root-commit) a1b2c3d] Initial commit for new-start branch
1 file changed, 1 insertion(+)
create mode 100644 readme.md
Remarquez que ce commit est également un "(root-commit)", tout comme le premier commit sur la branche master
. Cela confirme qu'il n'a pas de parent et qu'il est le début d'un nouvel historique.
Maintenant, regardons le journal pour cette branche :
git log --pretty=oneline
Vous devriez voir seulement le seul commit que nous venons de créer :
a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9 (HEAD -> new-start) Initial commit for new-start branch
Cela démontre que la branche new-start
a son propre historique indépendant, séparé de celui de la branche master
.