Git Handbook (edit)

Git (IG) - @manhng

Advanced Git - @manhng (HAY HAY HAY)

Git Commands - @manhng

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  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.