Git Handbook (edit)
Advanced Git - @manhng (HAY HAY HAY)
Duplicating a repository - @manhng
---- Delete local branch
git branch -d develop-test
---- Delete remote branch
git push origin --delete develop-test
---- Loại bỏ những thay đổi đã được commit của bạn
git reset --hard
git checkout -b develop-new-branch
git add .
git commit -m "Comment"
git push --set-upstream origin develop-new-branch
git checkout -b dev (tạo nhánh mới và chuyển sang nhánh đó)
git checkout -b dev master (tạo nhánh mới từ nhánh gốc master và chuyển sang nhánh vừa tạo đó)
git add . commit -m "Update Login API" (gộp 2 lệnh trên 1 dòng lệnh)
git log --all --oneline (kiểm tra lịch sử commit)
git checkout dev
git merge login (merge fast-forward)
git checkout dev
git merge login --no-ff (merge non fast-forward)
Hotfix
1) Tạo nhánh mới từ nhánh gốc master
git checkout -b fix-xxx master
2) Bạn merge nhánh hotfix vào cả hai branches master và dev, phần sửa lỗi sẽ xuất hiện ở cả hai branches, giúp history không bị rẽ nhánh bất ngờ.
git checkout master
git merge fix-xxx --no-ff
git checkout dev
git merge fix-xxx --no-ff
Cách phân nhánh và chia việc trong nhóm với Git – Ehkoo
Kết luận
Chúng ta có thể tóm tắt bài này lại như sau:
- Dự án được chia thành nhiều nhánh, bao gồm master, dev và có thể có staging
- Các nhánh tính năng được chia ra từ dev, phát triển độc lập, được rebase trước khi merge lại vào dev
- Rebase có thể thay đổi một chút history, hoặc squash lại thành một commit duy nhất
- Merge có thể là fast-forward hoặc non-fast-forward
- dev sẽ được merge vào master mỗi khi triển khai. Trường hợp có staging, dev sẽ được merge vào staging, và staging sẽ được merge vào master.
- Các nhánh hotfix sẽ được chia ra từ master, sau đó merge --no-ff vào master và dev
Dĩ nhiên bài viết này chỉ mang tính tham khảo, vì mỗi team mỗi công ty sẽ có những cách làm riêng.