mkdir test
cd test
git init
echo "Hello, ${USER}" >> master.txt
git add .
git commit -m "1st"
# 請改成自己的專案網址
git remote add origin git@gitlab.program.com.tw:jimmy.dai/git-test-20180521.git
git push -u origin master
git checkout -b feature/a master
echo "This is feature A" >> featureA.txt
git add .
git commit -m "2nd"
git push -u origin feature/a
echo "這是功能 A" >> featureA.txt
git add .
git commit -m "3rd"
git push
git checkout -b feature/b master
echo "This is feature B" >> featureB.txt
git add .
git commit -m "4th"
git push -u origin feature/b
echo "這是功能 B" >> featureB.txt
git add .
git commit -m "5th"
git push
git checkout -b feature/c master
echo "This is feature C" >> featureC.txt
git add .
git commit -m "6th"
git push -u origin feature/c
echo "這是功能 C" >> featureC.txt
git add .
git commit -m "7th"
git push
PTAL: Please Take A Look
LGTM: Looks Good To Me
git fetch --all
git checkout feature/a
git rebase -i origin/master
git rebase -i
注意: squash 前一個必須是 pick 或是 reword
--force
)git status # 先確認自己在正確的分支
git push -f
使用 git push --force
務必再次檢查
# 可以加上 --prune 同時刪除遠端沒有的分支(選用)
git fetch --all
git checkout master
git branch -D feature/a
git checkout master
git pull
git checkout feature/b
git rebase master
git checkout feature/c
git rebase master
git checkout feature/b
git push -f
git checkout feature/c
git push -f
使用 git push --force
務必再次檢查
使用 non fast forward (--no-ff
)
的方式來 Merge
但是僅在能夠透過 fast forward (--ff
)
時才允許 Merge
其實這份簡報有一些 GitLab Flow 的內容沒有提到:如 production 分支,這裡附上一些參考連結,裡面有更詳細的說明。