Kiến thức về Git Flows

Dòng chảy Git - Merge squash là gì?

Body

Một thuật ngữ khó nhớ phải không?

Merge squash - Nén cho phẳng, không phải "quất" hô biến lịch sử commit

Khoan đã, bạn đừng vội đọc nó là "Quất" nhé, nó không có nghĩa như chính từ tiếng Việt đó. Squash chỉ đơn giản là gói lại và hợp nhất một branch nào đó với các thay đổi của bạn trước khi merge vào nhánh thượng nguồn (upstream).

Dòng chảy Git - Merge và Rebase khác nhau như thế nào?

Body

Khác biệt cơ bản nhất là "dòng chảy". Merge có nghĩa là nhánh (sông) con nhập vào nhánh mẹ, còn rebase là dòng chảy từ sông mẹ đổ ra các nhánh con. Rất dễ hiểu phải không?

Một cách hiểu khác: Merge là đồng bộ từ dưới lên, còn rebase là đồng bộ từ trên xuống.

Thuật ngữ của team TIGO khi phân biệt 2 khái niệm này:

Dòng chảy Git - Nhặt nhạnh trái đào với Cherry-Pick

Body

Cherry-pick là gì?

Nhặt nhạnh nhanh những tính năng đã hoàn thành ở nhánh A để “hợp long” với một nhánh B, nhằm mục đích demo sớm với khách hàng chẳng hạn.

Giả sử bạn có 2 branches khác nhau cho 2 khách hàng khác nhau, tạm gọi là branch A và branch B. Và bạn đang fix một bug nghiêm trọng cùng tồn tại trên hệ thống của cả 2 khách hàng, bạn muốn chỉ commit một lần nhưng có thể apply vào luôn cả 2 branches.

Bạn có thể dùng lệnh cherry-pick của Git để giải quyết, như sau