thắc mắc [Git] dùng gì để giải quyết conflict

  • Người tạo chủ đề Người tạo chủ đề tiengdonhoarira
  • Ngày bắt đầu Ngày bắt đầu
Th này nên branch out từ master ra branch hotfix, merge hotfix -> qc, test ok merge hotfix -> master.
Cherry pick kiểu câu lệnh cứu cánh vã lắm mới phải xài thôi.
nếu như TH trên thì khả năng bị conflict nặng ở chỗ merge hotfix -> qc, vì branch qc đang giữ code mới, còn hotfix đang giữ code cũ.
 
Dùng branch có thể áp dụng cho nhiều tình huống cần duy trì các hướng phát triển độc lập. Dễ hình dung ra nhất là việc duy trì một nhánh để maintain bản cũ và một nhánh để phát triển bản mới.

Cherry pick, merge, rebase chỉ là các phương án đồng bộ giữa hai nhánh cho các trường hợp cụ thể thôi.

SVN cũng có cherry pick. Bạn mở hộp thoại merge ra sẽ thấy hai lựa chọn là merge a range of revisions và merge two different trees, cái đầu tiên chính là cherry pick. Dĩ nhiên mô hình nhánh của SVN khác git nên hơi khó giải thích.
cty mình k thường xài branch lắm. thanks
 
squash là để gộp commit với nhau, dành cho khi có người không biết commit, cứ "update/fix xxx" liên tục.

Còn lý do phải làm những cái trên là để dễ theo dõi kiểm soát lịch sử hơn. Sau này cần cũng có thể dùng được các tool như revert hay bisect, vốn rất cần lịch sử sạch.

VD
  • revert: tool này hoạt động tốt nhất khi các commit là rõ ràng, chỉ thực hiện đúng theo ý nghĩa của nó. Một lịch sử toàn update/fix xxx, hay kiểu một thay đổi thực hiện trên nhiều commit, hoặc một commit thực hiện trên nhiều thay đổi không liên quan thì revert rất khó hoặc không có tác dụng.
  • bisect: y/c cũng giống như revert, và còn cần tất cả các thời điểm trong lịch sử code ít nhất phải build thành công và chạy được. Với kiểu commit gây syntax error rồi sau đó đè thêm commit mới để fix thì rất khó bisect.
mình thấy commit nhìu lần thì có sao đâu? track dc cả working time
 
QC là branch test sẽ có toàn bộ code commits của master, conflict làm sao được fen?
sẽ có TH là QC đang có những commit mới của các features mới(vd: các commit cần thêm các đoạn code cho các files A,B,C để dev features mới)
mà nhánh master-hotfix cũng có các file A,B,C thì khi merge hotfix -> qc, sẽ bị conflict ở A,B,C
 
sẽ có TH là QC đang có những commit mới của các features mới(vd: các commit cần thêm các đoạn code cho các files A,B,C để dev features mới)
mà nhánh master-hotfix cũng có các file A,B,C thì khi merge hotfix -> qc, sẽ bị conflict ở A,B,C
Tại sao production có bug mà lại quan tâm đến commit mới của QC làm gì vậy fen? Master là branch chuẩn nhất, tất cả các branch khác từ prod đến qc, dev đều branch out từ đây ra. Nếu 1 branch mới tinh từ master mà lại gây ra conflict khi merge với các branch khác thì quy trình quản lý source bên fen có vấn đề, 1 là ai đó sửa master tùy tiện (Cherry-pick, reset revision, force push), 2 là dev không chịu rebase hàng ngày.
Chứ prod issue không ai lại branch out từ qc hay uat cả, nó đi ngược với best practice hoàn toàn.
 
GitDesktop open in VS Code, copy paste merge commit done 8-)

Mà không ai xài GitDesktop à ? Hàng chính chủ của Git Hub xài sướng bỏ mama, từ lúc biết tới nó là quên luôn command của Gitbash
 
GitDesktop open in VS Code, copy paste merge commit done 8-)

Mà không ai xài GitDesktop à ? Hàng chính chủ của Git Hub xài sướng bỏ mama, từ lúc biết tới nó là quên luôn command của Gitbash
vậy là do mình không biết sài à. có lắp mà không thấy rõ ràng nênkodung2
 
Khổ dâm quen nên chỉ thích dùng command line, và vs code. Accept incoming change or current change :d
-------
Sẽ dùng thử git tool của jetbrain và gitkraken
 
dùng cơm để tìm chổ conflict
dùng mồm để chửi thằng member làm conflict và bắt nó update
 
Team member trước khi tạo merge họ đã phải rebase vs nhánh Dev rồi. Nếu team members thực hiện tạo branch từ Dev và tự rebase thì khá đơn giản. Chịu khó rebase khi ít commit thì càng đơn giản.
Rebase 1 branches mà nhiêù user thì ác mộng ko a
 
ở công ty các bác dùng git theo flow nào?
1628447222317.png
 
một nơi feature cho development, master cho production,

một nơi master cho development, realese cho production

làm 1 mình thì master. github giờ còn có branch main là default nữa :beat_brick:
 

Thống kê chủ đề

Ngày tạo
tiengdonhoarira,
Người trả lời cuối
chim sẻ đi nắng,
Trả lời
185
Lượt xem
19.941
Quay lại
Lên đầu trang