Épisodes branches et fusion

Dans cet épisode, nous donnerons des nom symbolique à nos "commit" (c'est les "branch") et nous fusionnerons (ie "merge") deux "commit" avec un historique commun (justement les "branch")

Pour faire vos expériences et démarrer dans le même état que l'épisode:

L'environnement de travail : Un shell Linux : Bash avec git installé , soit sur votre système natif Linux ou dans un Linux installé sur Windows 10 avec WSL

Faites ces commandes dans l'ordre

cd <un répertoire de votre choix>

vous pouvez faire un copy/paste à partir de cette étape

# N'exécutez pas cette première ligne si vous ne voulez pas recommencer depuis le début

rm -rf CommitBranchEtMergeGR/ # pour recommencer si vous le souhaitez

git init CommitBranchEtMergeGR

cd CommitBranchEtMergeGR

echo "Un fichier initial" > README.md

git add README.md

git commit -m "Premier commit de l’épisode 4"

# Fin de l'étape de création du premier commit

Vous pouvez pour analyser ce que l'on à obtenu faire les commandes suivantes

git log --graph

git ls-files --stage

git cat-file -p master # cat-file : plomberie

git cat-file -p master^{tree}

# et le contenue de certains fichiers ou répertoire .git

more .git/HEAD

more .git/refs/heads/master

ls -R .git/objects

git show master # show : porcelaine

git show master^{tree}


L'historique des commande de la vidéo de l''épisode 4:

git status

ls

git branch newbranch

git branch

more .git/HEAD

git checkout newbranch

git branch

more .git/HEAD

more .git/refs/heads/newbranch

git cat-file -t 78d066dbaba7b

git cat-file -t newbranch

git show newbranch

echo "deuxième fichier" > fichier2.txt

git add fichier2.txt

git commit -m "Un commit dans newbranch"

git branch

git log

more .git/refs/heads/newbranch

more .git/refs/heads/master

more .git/HEAD

git log --graph

git log --graph --all

git checkout master

git log --graph --all

git log --graph

git log --graph --all

echo "un fichier dans le contexte master" > f3.txt

git add .

git commit -m "dans master"

git log --graph

git log --graph --all

git cat-file -p 78d066dbaba

git cat-file -p newbranch

git cat-file -p master

git cat-file -p master^{tree}

git cat-file -p newbranch^{tree}

git branch

git merge newbranch

git log --graph --all

git -d newbranch

git branch -d newbranch

git log --graph --all

ls .git/refs/heads/

ls .git/objects/

ls .git/objects/30/