SlideShare a Scribd company logo
1 of 13
Let’s your collaborators more happy with GitFlow
Centrallize
Workflow
Centrallize Workflow (2)
Centrallize Workflow (3)
Centrallize Workflow (4)
Centrallize Workflow (5)
Feature Branch Workflow
Pull request
Feature Branch Workflow (2)
Gitflow Workflow
Forking Workflow
Out very own
Workflow

More Related Content

Viewers also liked

Specification of f21 2 d radio remote control
Specification of f21 2 d radio remote controlSpecification of f21 2 d radio remote control
Specification of f21 2 d radio remote controlCynthia Wang
 
WebQuest: Taller de Formulación y Evaluación de Proyectos
WebQuest: Taller de Formulación y Evaluación de ProyectosWebQuest: Taller de Formulación y Evaluación de Proyectos
WebQuest: Taller de Formulación y Evaluación de ProyectosFlavio Kaufmann
 
Подготовка к Экзамену Microsoft 70-411 (MCSA: Windows Server 2012)
Подготовка к Экзамену Microsoft 70-411 (MCSA: Windows Server 2012)Подготовка к Экзамену Microsoft 70-411 (MCSA: Windows Server 2012)
Подготовка к Экзамену Microsoft 70-411 (MCSA: Windows Server 2012)Виталий Стародубцев
 
Apec workshop 2 presentation 2 b rafael acosta cfe
Apec workshop 2 presentation 2 b rafael acosta cfeApec workshop 2 presentation 2 b rafael acosta cfe
Apec workshop 2 presentation 2 b rafael acosta cfeGlobal CCS Institute
 
PresentacióN1
PresentacióN1PresentacióN1
PresentacióN1reskate
 
Encoded Archival Description (EAD)
Encoded Archival Description (EAD) Encoded Archival Description (EAD)
Encoded Archival Description (EAD) Farris Wahbeh
 
Delitos contra la propiedad
Delitos contra la propiedadDelitos contra la propiedad
Delitos contra la propiedadBETSI SANCHEZ
 
Настройка параметров создания виртуальной машины
Настройка параметров создания виртуальной машиныНастройка параметров создания виртуальной машины
Настройка параметров создания виртуальной машиныAlex Chernyavskiy
 

Viewers also liked (13)

Weekly Plan 17 Jul 2010
Weekly Plan 17 Jul 2010Weekly Plan 17 Jul 2010
Weekly Plan 17 Jul 2010
 
Profile
ProfileProfile
Profile
 
Specification of f21 2 d radio remote control
Specification of f21 2 d radio remote controlSpecification of f21 2 d radio remote control
Specification of f21 2 d radio remote control
 
WebQuest: Taller de Formulación y Evaluación de Proyectos
WebQuest: Taller de Formulación y Evaluación de ProyectosWebQuest: Taller de Formulación y Evaluación de Proyectos
WebQuest: Taller de Formulación y Evaluación de Proyectos
 
Подготовка к Экзамену Microsoft 70-411 (MCSA: Windows Server 2012)
Подготовка к Экзамену Microsoft 70-411 (MCSA: Windows Server 2012)Подготовка к Экзамену Microsoft 70-411 (MCSA: Windows Server 2012)
Подготовка к Экзамену Microsoft 70-411 (MCSA: Windows Server 2012)
 
Apec workshop 2 presentation 2 b rafael acosta cfe
Apec workshop 2 presentation 2 b rafael acosta cfeApec workshop 2 presentation 2 b rafael acosta cfe
Apec workshop 2 presentation 2 b rafael acosta cfe
 
PresentacióN1
PresentacióN1PresentacióN1
PresentacióN1
 
программа качества
программа качествапрограмма качества
программа качества
 
Acolhimento cad 2016
Acolhimento cad 2016Acolhimento cad 2016
Acolhimento cad 2016
 
Encoded Archival Description (EAD)
Encoded Archival Description (EAD) Encoded Archival Description (EAD)
Encoded Archival Description (EAD)
 
Delitos contra la propiedad
Delitos contra la propiedadDelitos contra la propiedad
Delitos contra la propiedad
 
REFM 2011 Real Deals Annual Report Webinar Slides
REFM 2011 Real Deals Annual Report Webinar SlidesREFM 2011 Real Deals Annual Report Webinar Slides
REFM 2011 Real Deals Annual Report Webinar Slides
 
Настройка параметров создания виртуальной машины
Настройка параметров создания виртуальной машиныНастройка параметров создания виртуальной машины
Настройка параметров создания виртуальной машины
 

Recently uploaded

Open Source Camp Kubernetes 2024 | Running WebAssembly on Kubernetes by Alex ...
Open Source Camp Kubernetes 2024 | Running WebAssembly on Kubernetes by Alex ...Open Source Camp Kubernetes 2024 | Running WebAssembly on Kubernetes by Alex ...
Open Source Camp Kubernetes 2024 | Running WebAssembly on Kubernetes by Alex ...NETWAYS
 
Genesis part 2 Isaiah Scudder 04-24-2024.pptx
Genesis part 2 Isaiah Scudder 04-24-2024.pptxGenesis part 2 Isaiah Scudder 04-24-2024.pptx
Genesis part 2 Isaiah Scudder 04-24-2024.pptxFamilyWorshipCenterD
 
CTAC 2024 Valencia - Henrik Hanke - Reduce to the max - slideshare.pdf
CTAC 2024 Valencia - Henrik Hanke - Reduce to the max - slideshare.pdfCTAC 2024 Valencia - Henrik Hanke - Reduce to the max - slideshare.pdf
CTAC 2024 Valencia - Henrik Hanke - Reduce to the max - slideshare.pdfhenrik385807
 
Call Girls in Sarojini Nagar Market Delhi 💯 Call Us 🔝8264348440🔝
Call Girls in Sarojini Nagar Market Delhi 💯 Call Us 🔝8264348440🔝Call Girls in Sarojini Nagar Market Delhi 💯 Call Us 🔝8264348440🔝
Call Girls in Sarojini Nagar Market Delhi 💯 Call Us 🔝8264348440🔝soniya singh
 
The 3rd Intl. Workshop on NL-based Software Engineering
The 3rd Intl. Workshop on NL-based Software EngineeringThe 3rd Intl. Workshop on NL-based Software Engineering
The 3rd Intl. Workshop on NL-based Software EngineeringSebastiano Panichella
 
LANDMARKS AND MONUMENTS IN NIGERIA.pptx
LANDMARKS  AND MONUMENTS IN NIGERIA.pptxLANDMARKS  AND MONUMENTS IN NIGERIA.pptx
LANDMARKS AND MONUMENTS IN NIGERIA.pptxBasil Achie
 
call girls in delhi malviya nagar @9811711561@
call girls in delhi malviya nagar @9811711561@call girls in delhi malviya nagar @9811711561@
call girls in delhi malviya nagar @9811711561@vikas rana
 
CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...
CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...
CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...henrik385807
 
Open Source Camp Kubernetes 2024 | Monitoring Kubernetes With Icinga by Eric ...
Open Source Camp Kubernetes 2024 | Monitoring Kubernetes With Icinga by Eric ...Open Source Camp Kubernetes 2024 | Monitoring Kubernetes With Icinga by Eric ...
Open Source Camp Kubernetes 2024 | Monitoring Kubernetes With Icinga by Eric ...NETWAYS
 
OSCamp Kubernetes 2024 | Zero-Touch OS-Infrastruktur für Container und Kubern...
OSCamp Kubernetes 2024 | Zero-Touch OS-Infrastruktur für Container und Kubern...OSCamp Kubernetes 2024 | Zero-Touch OS-Infrastruktur für Container und Kubern...
OSCamp Kubernetes 2024 | Zero-Touch OS-Infrastruktur für Container und Kubern...NETWAYS
 
OSCamp Kubernetes 2024 | A Tester's Guide to CI_CD as an Automated Quality Co...
OSCamp Kubernetes 2024 | A Tester's Guide to CI_CD as an Automated Quality Co...OSCamp Kubernetes 2024 | A Tester's Guide to CI_CD as an Automated Quality Co...
OSCamp Kubernetes 2024 | A Tester's Guide to CI_CD as an Automated Quality Co...NETWAYS
 
OSCamp Kubernetes 2024 | SRE Challenges in Monolith to Microservices Shift at...
OSCamp Kubernetes 2024 | SRE Challenges in Monolith to Microservices Shift at...OSCamp Kubernetes 2024 | SRE Challenges in Monolith to Microservices Shift at...
OSCamp Kubernetes 2024 | SRE Challenges in Monolith to Microservices Shift at...NETWAYS
 
Call Girls in Rohini Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Rohini Delhi 💯Call Us 🔝8264348440🔝Call Girls in Rohini Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Rohini Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Work Remotely with Confluence ACE 2.pptx
Work Remotely with Confluence ACE 2.pptxWork Remotely with Confluence ACE 2.pptx
Work Remotely with Confluence ACE 2.pptxmavinoikein
 
SBFT Tool Competition 2024 -- Python Test Case Generation Track
SBFT Tool Competition 2024 -- Python Test Case Generation TrackSBFT Tool Competition 2024 -- Python Test Case Generation Track
SBFT Tool Competition 2024 -- Python Test Case Generation TrackSebastiano Panichella
 
NATIONAL ANTHEMS OF AFRICA (National Anthems of Africa)
NATIONAL ANTHEMS OF AFRICA (National Anthems of Africa)NATIONAL ANTHEMS OF AFRICA (National Anthems of Africa)
NATIONAL ANTHEMS OF AFRICA (National Anthems of Africa)Basil Achie
 
Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...
Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...
Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...Krijn Poppe
 
WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )
WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )
WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )Pooja Nehwal
 
Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...
Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...
Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...Pooja Nehwal
 
Simulation-based Testing of Unmanned Aerial Vehicles with Aerialist
Simulation-based Testing of Unmanned Aerial Vehicles with AerialistSimulation-based Testing of Unmanned Aerial Vehicles with Aerialist
Simulation-based Testing of Unmanned Aerial Vehicles with AerialistSebastiano Panichella
 

Recently uploaded (20)

Open Source Camp Kubernetes 2024 | Running WebAssembly on Kubernetes by Alex ...
Open Source Camp Kubernetes 2024 | Running WebAssembly on Kubernetes by Alex ...Open Source Camp Kubernetes 2024 | Running WebAssembly on Kubernetes by Alex ...
Open Source Camp Kubernetes 2024 | Running WebAssembly on Kubernetes by Alex ...
 
Genesis part 2 Isaiah Scudder 04-24-2024.pptx
Genesis part 2 Isaiah Scudder 04-24-2024.pptxGenesis part 2 Isaiah Scudder 04-24-2024.pptx
Genesis part 2 Isaiah Scudder 04-24-2024.pptx
 
CTAC 2024 Valencia - Henrik Hanke - Reduce to the max - slideshare.pdf
CTAC 2024 Valencia - Henrik Hanke - Reduce to the max - slideshare.pdfCTAC 2024 Valencia - Henrik Hanke - Reduce to the max - slideshare.pdf
CTAC 2024 Valencia - Henrik Hanke - Reduce to the max - slideshare.pdf
 
Call Girls in Sarojini Nagar Market Delhi 💯 Call Us 🔝8264348440🔝
Call Girls in Sarojini Nagar Market Delhi 💯 Call Us 🔝8264348440🔝Call Girls in Sarojini Nagar Market Delhi 💯 Call Us 🔝8264348440🔝
Call Girls in Sarojini Nagar Market Delhi 💯 Call Us 🔝8264348440🔝
 
The 3rd Intl. Workshop on NL-based Software Engineering
The 3rd Intl. Workshop on NL-based Software EngineeringThe 3rd Intl. Workshop on NL-based Software Engineering
The 3rd Intl. Workshop on NL-based Software Engineering
 
LANDMARKS AND MONUMENTS IN NIGERIA.pptx
LANDMARKS  AND MONUMENTS IN NIGERIA.pptxLANDMARKS  AND MONUMENTS IN NIGERIA.pptx
LANDMARKS AND MONUMENTS IN NIGERIA.pptx
 
call girls in delhi malviya nagar @9811711561@
call girls in delhi malviya nagar @9811711561@call girls in delhi malviya nagar @9811711561@
call girls in delhi malviya nagar @9811711561@
 
CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...
CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...
CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...
 
Open Source Camp Kubernetes 2024 | Monitoring Kubernetes With Icinga by Eric ...
Open Source Camp Kubernetes 2024 | Monitoring Kubernetes With Icinga by Eric ...Open Source Camp Kubernetes 2024 | Monitoring Kubernetes With Icinga by Eric ...
Open Source Camp Kubernetes 2024 | Monitoring Kubernetes With Icinga by Eric ...
 
OSCamp Kubernetes 2024 | Zero-Touch OS-Infrastruktur für Container und Kubern...
OSCamp Kubernetes 2024 | Zero-Touch OS-Infrastruktur für Container und Kubern...OSCamp Kubernetes 2024 | Zero-Touch OS-Infrastruktur für Container und Kubern...
OSCamp Kubernetes 2024 | Zero-Touch OS-Infrastruktur für Container und Kubern...
 
OSCamp Kubernetes 2024 | A Tester's Guide to CI_CD as an Automated Quality Co...
OSCamp Kubernetes 2024 | A Tester's Guide to CI_CD as an Automated Quality Co...OSCamp Kubernetes 2024 | A Tester's Guide to CI_CD as an Automated Quality Co...
OSCamp Kubernetes 2024 | A Tester's Guide to CI_CD as an Automated Quality Co...
 
OSCamp Kubernetes 2024 | SRE Challenges in Monolith to Microservices Shift at...
OSCamp Kubernetes 2024 | SRE Challenges in Monolith to Microservices Shift at...OSCamp Kubernetes 2024 | SRE Challenges in Monolith to Microservices Shift at...
OSCamp Kubernetes 2024 | SRE Challenges in Monolith to Microservices Shift at...
 
Call Girls in Rohini Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Rohini Delhi 💯Call Us 🔝8264348440🔝Call Girls in Rohini Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Rohini Delhi 💯Call Us 🔝8264348440🔝
 
Work Remotely with Confluence ACE 2.pptx
Work Remotely with Confluence ACE 2.pptxWork Remotely with Confluence ACE 2.pptx
Work Remotely with Confluence ACE 2.pptx
 
SBFT Tool Competition 2024 -- Python Test Case Generation Track
SBFT Tool Competition 2024 -- Python Test Case Generation TrackSBFT Tool Competition 2024 -- Python Test Case Generation Track
SBFT Tool Competition 2024 -- Python Test Case Generation Track
 
NATIONAL ANTHEMS OF AFRICA (National Anthems of Africa)
NATIONAL ANTHEMS OF AFRICA (National Anthems of Africa)NATIONAL ANTHEMS OF AFRICA (National Anthems of Africa)
NATIONAL ANTHEMS OF AFRICA (National Anthems of Africa)
 
Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...
Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...
Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...
 
WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )
WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )
WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )
 
Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...
Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...
Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...
 
Simulation-based Testing of Unmanned Aerial Vehicles with Aerialist
Simulation-based Testing of Unmanned Aerial Vehicles with AerialistSimulation-based Testing of Unmanned Aerial Vehicles with Aerialist
Simulation-based Testing of Unmanned Aerial Vehicles with Aerialist
 

Editor's Notes

  1. tất cả những sự khác nhau giữa git với các cvs khác, tất cả những công cụ hoàn toàn mới lạ, những khái niệm mà dường như chỉ ở git mới có, v.v.. đều được thiết kế cho một mục đích duy nhất: làm cho git “fit" cực kỳ với mong muốn làm việc phân tán, nói dễ hiểu hơn, thì là làm cho việc cộng tác trở nên tự do hơn. nếu coi git là một ngôn ngữ, thì có rất nhiều thuật toán có thể được sinh ra để giải quyết cùng một bài toán cộng tác đó. trong phần này, chúng ta ngó qua một vài dòng thuật toán lớn vẫn thường được áp dụng triển khai. tất cả những “thuật toán" này có tên gọi chung là các git workflows. bất cứ một dự án git nào cũng cần phải có một git flow để bám theo, nếu không mọi thứ sẽ trở thành một thứ bòng bong. và mọi ưorkflow đó đều rồi sẽ chuẩn hoá thành một trong số các flow trong bài này. Hiểu, áp dụng và sáng tạo ra cách xử lý với git flows giúp lập trình viên cộng tác với nhau tốt hơn.
  2. Bắt đầu với basic workflow - luồng làm việc “có trung tâm"
  3. Luồng đơn giản nhất, dễ nắm bắt nhất, dễ tưởng tượng nhất đặc biệt là với các nhóm mới chuyển từ svn sang. Luồng này có thể coi như là một kiểu “áp luồng đã dùng ở svn sang git", ta không cần quan tâm/thậm chí không cần biết đến nhánh, chỉ việc dùng nhánh default là master.
  4. Tuy nhiên, đặc điểm của git là commit có contrỏ “cha" rất rõ ràng, nên khi làm việc nhóm thì thường xuyên xảy ra sự rẽ nhánh, lúc này mà push thì git sẽ không cho và muốn gì thì muốn mình vẫn phải pull, và lúc pull thì nó sẽ đòi merge, và cây lịch sử sẽ không tuyến tính nữa. Làm thế nào bây giờ?
  5. Muốn không phải merge, nói cách khác là muốn giữ cây được thẳng, thì né merge ra và dùng rebase. Muốn giữ cây lich sử được thẳng, ta sẽ dùng chiến thuật rebase. Cụ thể là ta sẽ luôn pull --rebase - và sẽ có kết quả y hệt như ở svn - commit của mình sẽ ở cuối cùng. Sau đó push. Nếu lúc này mình lại tiếp tục bị bddd thì chỉ vieecj lại pull tiếp.
  6. Nếu lúc pull --rebase có conflict - sự việc xảy ra sẽ giống y như bài toán merge - tiến trình rebase sẽ bị stop tại commit gây ra conflict, ta xử lý conflict, xong add, tuy nhiên ở bước cuối cùng thay vì commit thì ta chạy git rebase --continue để tiếp tục rebase. Lý do mà có cờ --continue ở đây là, cho dù sau khi add xong thì tiến trình rebase vẫn chưa kết thúc, vẫn còn nhiều commit ở phía sau chưa được copy, và chưa hẳn là các commit đó không tiếp tục xảy ra conflict, cho nên tiến trình rebase mới được thiết kế như thế. việc pull -rebase có thể xảy ra nguyên một chuỗi conflict và mình sẽ phải làm lần lượt từng cái một - chuyện đó là bình thường. Nếu ở lúc nào đó không chịu nổi nữa, và muốn đập đi pull lại thì có thể dùng git rebase --abort Sau khi rebase xong thì có thể squash các commit trước khi push, việc đấy đảm bảo cho mỗi commit trên nhánh master là một chức năng trọn vẹn, khá đẹp, tuy bị mất lịch sử xử lý từng bước, nhưng việc không để cho commit của chức năng này lẫn vào commit của chức năng kia còn quan trọng hơn, ơ nhưng lại kéo theo nhược điểm tiếp theo là ít khi mình chạy push được, mà tốt nhất là nên code cho xong xuôi đã rồi hẵng push, nhược điểm tiếp theo tới từ việc hoàn thiện business - nếu nghiệp vụ thay đổi và đòi hỏi có thêm code thì việc commit bị xen kẽ vẫn sẽ xảy ra.
  7. Muốn vẫn có lịch sử thay đổi, mà vẫn muốn push thưognf xuyên, muốn chỉnh sửa nghiệp vụ tới khi kh chán thì thôi mà nhánh master vẫn đẹp, thì bắt buộc ông phải tách nhánh, rồi ông muốn làm gì thì làm, đấy là cơ sở của workflow tiếp theo - một sự nâng cấp của centrallize workflow, và sau khi hoàn thiênj thì nó được đặt tên như trên. Quy luật cho workflow này đó là: mọi commit để hoàn thiện chức năng phải được thực hiện trên nhánh. Nhánh đó được tách từ master và được gọi là feature-branch - ở vnext thi có thể gọi là issue-branch.
  8. Đây cũng là workflow đầu tiên mà tận dụng được chức năng pull-request, giúp cho tất cả những người tham gia vào dự án có thể trực tiếp quan sát được những gì đang xảy ra và đưa ra ý kiến mà không hề có độ trễ. Áp dụng được pullrequest cũng tạo tiền đề cho việc đưa codereview vào một phần của quy trình . Tư tưởng đằng sau pull request là: đó là một notification thông báo cho những người có thẩm quyền trên branch <Target> nằm trên <target_repo> biết rằng ta muốn họ đứng ở trên branch ấy và pull branch <Destination> ở <destination_repo> về. Không chỉ thế, cái hay là pull request có thể nằm ở một trong ba trạng thái: vẫn đang chờ, rejected, hoặc accepted - chính ba trạng thái này làm nên sự lấp la lấp lánh của pull request trong quy trình làm việc cộng tác. Chú ý rằng bản thân pull request không phải là chức năng của git, nó là một chức năng của hệ thống quản lý issue mà thường được tích hợp luôn vào các giao diện web của các repo git đầu bảng hiện đại. Thậm chí các hệ thống này còn có khả năng cho phép merge branch bằng giao diện web nếu pull request đã được accept. Câu chuyện của pull request trong workflow chỉ là: ai, và lúc nào thì pullrequest được accept hoặc bị reject mà thôi.
  9. Đầu tiên, đứng ở nhánh master, tạo nhánh và checkout sang hoặc checkout -b. Ngay lập tức push -u để push ref mới lên đồng thời setup tracking branch. Sau đó (code/push)(lặp lại). Ngon rồi thì dev tạo pull request, team thảo luận, review, và tiếp tục code/push. Chán chê cho tới khi pull request được người review accept. Tới lúc này thì có thể merge, ai merge cũng được. Nếu không merge bằng web thì có thể merge thủ công: Checkout sang master, pull. Merge origin/feature vào bằng git merge hoặc git pull. Nếu có conflict thì xử lý. Push lên master.
  10. Feature Branch là một flow rất tốt, thật ra thì bất cứ flow nào sử dụng phân nhánh issue/pull request đều tốt cả. Vấn đề là đối với các dự án rắc rối về mặt hành chính, nó cần được nâng cấp, feature branch được chia ra làm nhiều loại, master được chia ra làm nhiều loại. Merge qua nhiều tầng, nhiều lớp. Đấy là ý tưởng được rất nhiều tổ chức sử dụng. Gitflow là một trong các kịch bản như thế, và về mặt lý thuyết cũng như sử dụng thực tế đã chứng minh là nó hiệu quả. Ý tưởng về gitflow có thể trình bày qua hình trên. Triển khai thực tế phưc tạp hơn để đáp ứng các tình huống thực tế. Nhưng ý tưởng cốt lõi là như sau: Tách biệt nhánh master ra thành develop và master. Tên như ý nghĩa. Tách từ nhánh dev ra một loại nhánh phụ trợ cho nhánh dev là các nhánh feature. Tất cả các commit bổ sung cho feature nhất thiết phải được thực hiện trên nhánh feature. Mỗi commit đại diện cho một bước tiến triển của feature. Nhánh feature sau khi được accept, sẽ được merge vào nhánh develop, trên nhánh develop nhất thiết chỉ được chứa các commit merge từ nhánh feature, như vậy thì mỗi commit ở develop sẽ đại diện cho một lần tăng chức năng. Việc accept nhánh feature là nhiệm vụ nội bộ của teamdev. Nhánh feature một khi đã merge rồi thì KHÔNG CODE TIẾP VÀO ĐẤY NỮA - vì việc này phá hỏng flow.
  11. Để thuận tiện hơn cho việc triển khai release, những rule sau đã được thêm vào: Những feature gấp gáp nhất - tức là những feature của bản release kế tiếp sẽ được merge vào develop trước, sẽ không được có feature nào của bản release tiếp theo được phép merge cho đến khi develop đã có đầy đủ các feature của bản release gần nhất. Cần chú ý, việc “merge" ở đây chỉ xảy ra khi feature branch đã được accept - tức là review tesst tiếc các kiểu rồi. Ngay khi nhánh develop đã có đủ các feature cho bản release gần nhất, ta sẽ tách từ develop ra nhánh release_x.y.z. Sau khi có nhánh này rồi thì có thể tiếp tục merge các feature gần gấp gáp nhất. Sau khi tạo nhánh release thì có thể tạo pullrequest đến nhánh master. Sự hiện diện của pullrequest này mang tính thông báo cho bộ phận đóng vai trò QA rằng: bên dev đã hoàn thành một bản release, có thể test được rồi. Nhánh relaese có thể có lỗi, các bugfixes có thể được commit trực tiếp trên nhánh release này. Trừ khi có quá nhiều bug, nếu không thì cây của nhánh release thường là thẳng, ta có thể giữ nó thẳng bằng chiến thuật rebase, như ở basic flow. Mỗi khi bug được sửa, bugfix có thể ngay lập tức được merge ngược vào nhánh develop. Khi nhanhs release đã được xác nhận là done, bên QA có thể làm hành động là accept pullrequest, nếu có hệ thống CI thì ngay lập tức nhánh release sẽ được merge vào nhánh master, TAG đánh dấu phiên bản sẽ được gán vào commit merge, sourcecode sẽ ngay lập tức được build, nếu là web thì bản build sẽ ngay lập tức được deploy, nếu không có CI thì những việc trên sẽ được thực hiện bằng cơm. Kể cả sau khi release rồi thì lỗi vẫn có thể được phát hiện, tuy nhiên nhớ là “nhánh đã được accept pull request và merge rồi thì không code vào nữa”, do đó các lỗi này, có thể sẽ được đưa vào danh sách feature ở bản release sau, hoặc được sửa ngay lập tức bằng cách tạo ra nhánh hotfix_xxxx từ nhánh master, câu chuyện sau đó với nhánh này sẽ hoàn toàn giống với nhánh release: tạo pull request sau khi xong, merge ngược thường xuyên vào nhánh dev, CI chạy ngay sau khi accpeted.
  12. Đây là một flow đặc biệt, khác hoàn toàn với các flow đã kể ra. Thực ra nó được xây dựng cho thế giới phần mềm nguồn mở. Nhưng tư tưởng của nó hoàn toàn có thể được áp dụng cho những dự án có mùi tương tự: đó là khi gặp khó khăn trong việc quản lý “những ai có quyền push lên repo này". Không thể mở full quyền push đối với tất cả member của repo, nhưng cũng không được hạn chế các member ấy cộng tác phát triển. Các hệ thống repo hosting hiện đại với chức năng tạo pull request có thể hỗ trợ giải quyết vấn đề này. User có thể clone repo gốc về, sau đó push lên chính repo hosting nhưng dưới thẩm quyền của mình. Việc đấy được gọi là fork. User có thể phát triển các tính năng mình muốn cộng tác lên repo của mình. Đầu ra là nhánh master ở repo của mình. Việc áp dụng flow nào cho repo của user do user quyết định. Tới lúc nào đó, user sẽ tạo pull request từ nhánh master này tới nhánh nào đó ở repo gốc. Nhánh nào thì phụ thuộc vào flow của repo gốc. Với opensource thì mình có thể tạo thẳng trỏ vào nhánh master. Nhưng nếu là forking do những nguyên nhân khác thì chưa hẳn. Nói chung mình sẽ phải đọc contribution-note ở repo gốc để biết chuyện này. Nếu không còn lâu pull request mới được accept.
  13. Chúng ta vừa dạo qua 4 trường phái chính của git workflow. Chúng không nhất thiết phải được áp dụng một cách cứng nhắc, chúng chỉ là các nguyên mẫu, nói lên rằng chúng ta có thể giải quyết vấn đề cộng tác bằng những chiêu như nào. Git cho phép chúng ta tự do thiết kế mô hình để fit nhất với tình huống dự án. Tất cả các mánh khoé của các nguyên mẫu đều có thể kết hợp rất nhuyễn với nhau. Tuỳ bạn sáng tạo.