Pular para o conteúdo principal

ramificacao-git-branches.sh (Código)

#!/bin/bash

# Caso 1: Ramos nomeados do Mercurial
#
#    (1)----(2)          > stable
#   /         \
# (0)---(3)---(4)---(7)  > default/master
#   \     \         /
#    \     (5)---(6)     > bug
#     \            \
#      (8)---------(9)   > feature


#
# Ramificação pelo Git
#

cd /tmp
if [ -d git-branches ]; then
    rm -rf git-branches
fi

git init git-branches
cd git-branches

echo 'zero' > master.txt
git add .
git commit -m zero
git branch feature

git branch stable
git checkout stable
echo 'um' > stable.txt
git add .
git commit -m um

echo 'dois' >> stable.txt
git add .
git commit -m dois

git checkout master
echo 'três' >> master.txt
git commit -am tres
git branch bug

git merge stable -m "quatro - Merge branch 'stable'"

git checkout bug
echo 'cinco' > bug.txt
git add .
git commit -m cinco

echo 'seis' >> bug.txt
git commit -am seis

git checkout master
git merge bug -m "sete - Merge branch 'bug'"


git checkout feature
echo 'oito' > feature.txt
git add .
git commit -m oito

git merge bug -m "nove - Merge branch 'bug'"

echo -e '\n\n======\nmaster\n======'
git log --graph --pretty=oneline master
echo -e '\n\n=======\nfeature\n======='
git log --graph --pretty=oneline feature
echo -e '\n\n===\nbug\n==='
git log --graph --pretty=oneline bug
echo -e '\n\n======\nstable\n======'
git log --graph --pretty=oneline stable