Bạn có bao giờ tự hỏi
- Git còn gì ngoài
git commit
,git push
vàgit pull
? Thỉnh thoảng dùng thêmgit merge
, còn gì nữa không? git merge
vàgit rebase
khác gì nhau, nên dùng cái nào?- Ở vị trí team leader bạn sẽ vận hành git ra sao để kết hợp với process của team (agile) và giải quyết các conflict trong quá trình code?
- Lịch sử git có giá trị như thế nào? Hay bạn chẳng bao giờ để ý đến nó?
Nếu bạn là 1 git command line master thì mọi thứ đều có thể được giải quyết dưới local bằng dòng lệnh. Nhưng khi làm việc trong một nhóm đông thành viên, làm thế nào để xử lý các vấn đề conflict code, release ra sao, thêm feature mới như thế nào, hotfix ra làm sao một cách trơn tru và hiệu quả, giảm thiểu tối đa các bước thủ công, tiến dần đến một git workflow tự động hoàn toàn (devops).
Luôn luôn tạo ra linear history
Git Workflow được giới thiệu sau đây luôn giữ một tư duy cực kỳ nhất quán về
git history
luôn luôn làlinear history
(có thể hiểu là history trên một đường thẳng). Nhìn trong hình đủ thấylinear history
dễ hiểu hơn rất nhiều so vớinon-linear history
, đủ dễ để nhìn vào graph là có thể thấy được thứ tự của các commit và sự khác nhau giữa các version được release.
Tham khảo
git merge
và git rebase
đúng lúc đúng chỗ
Nguyên tắc tiên quyết
- Để update code mới nhất, không
merge
trên local, hãy dùngrebase
merge
tự động bằngmerge (pull) request
(cần cấu hình để khimerge
sẽ sinh ra một empty commit nhằm đánh dấu vị trí merge)