thảo luận Mấy thím tay to kinh nghiệm lâu năm có tips gì hay ho về git không?

  • Người tạo chủ đề Người tạo chủ đề Ewww
  • Ngày bắt đầu Ngày bắt đầu
^ git reflog đc mà. Nhớ backup lại là đc. Checkout -b hoặc push lên remote cũng ổn
Em thấy đối với newbie, copy folder là dễ nhất trong đám này.
cho em hỏi , giả sử thằng A push code mới lên mà task của mình đang cần dùng code ý với đang ở branch khác thì mình lại git checkout -b tiếp ạ
Merge branch nó vào branch mình.
 
cho em hỏi , giả sử thằng A push code mới lên mà task của mình đang cần dùng code ý với đang ở branch khác thì mình lại git checkout -b tiếp ạ
Cos thể mẻger hoặc rebase branch code của nó về mình. Mà thật tế nó đẩy lên nhánh chính kéo về chứ ai éo kiểu đó.
 
Em cũng cần cái này, git biết cơ bản nhưng còn hơi non :confused:

Sent from Samsung SM-A730F using vozFApp
 
cho em hỏi , giả sử thằng A push code mới lên mà task của mình đang cần dùng code ý với đang ở branch khác thì mình lại git checkout -b tiếp ạ
thường thì sẽ đợi nó đc merge vô nhánh chính kiểu development hay staging gì đó ... sau đó mình sẽ merge hoặc rebase tuỳ theo b ... chứ đừng merge hay rebase từ nhánh b đang cần code ... làm v thì cũng đc nhưng nó k đúng lắm đâu vì biết đâu code nó k đc merge hay s đó thì phải đi revert hoặc reset ~~ khá oải đấy
 
Thím nói sơ qua các tình hình nên chọn được ko
Ví dụ như code của nó ở branch A
Và branch A đó đang có 3 commit mới so với master.
Bạn chỉ muốn lấy 1 commit trong đó ra để phục vụ cho code của mình, thì bạn dùng cherry-pick.
(với điều kiện là commit được cherry-pick độc lập vs 2 commit còn lại)

Nếu 3 commit đó kiểu liên quan tới nhau, ví dụ bạn cần commit thứ 3, và commit thứ 3 có sử dụng code của 2 commit đầu, thì lúc này cherry-pick cả 3 commit thì hơi mất công, nên sử dụng rebase hoặc merge.
Nếu muốn log git đẹp, và dễ review. Có thể rebase -i branch A, để 3 commit đó xuống dưới cùng.
Sau đó mình có thể gộp lại bằng squash với tên commit là "NO_REVIEW" chẳng hạn, (NO_REVIEW tức là code này ko phải của t, m ko cần review nó trong pull request của tao, tao chỉ đi sử dụng lại)

Cá nhân mình thì không thích sử dụng merge khi 1 feature đó vẫn chưa hoàn thiện, vì merge xong, sau lại có commit fixup khác nữa, merge tiếp, lúc đó nhìn cái log ngứa mắt.
 
Ví dụ như code của nó ở branch A
Và branch A đó đang có 3 commit mới so với master.
Bạn chỉ muốn lấy 1 commit trong đó ra để phục vụ cho code của mình, thì bạn dùng cherry-pick.
(với điều kiện là commit được cherry-pick độc lập vs 2 commit còn lại)

Nếu 3 commit đó kiểu liên quan tới nhau, ví dụ bạn cần commit thứ 3, và commit thứ 3 có sử dụng code của 2 commit đầu, thì lúc này cherry-pick cả 3 commit thì hơi mất công, nên sử dụng rebase hoặc merge.
Nếu muốn log git đẹp, và dễ review. Có thể rebase -i branch A, để 3 commit đó xuống dưới cùng.
Sau đó mình có thể gộp lại bằng squash với tên commit là "NO_REVIEW" chẳng hạn, (NO_REVIEW tức là code này ko phải của t, m ko cần review nó trong pull request của tao, tao chỉ đi sử dụng lại)

Cá nhân mình thì không thích sử dụng merge khi 1 feature đó vẫn chưa hoàn thiện, vì merge xong, sau lại có commit fixup khác nữa, merge tiếp, lúc đó nhìn cái log ngứa mắt.

Bác nói đúng case của em khi đung cherry-pick lun. Hồi trước em có bị case này. Lúc đó phải chery cả 3 cái commit liên quan lun.
Mà có cách nào squash lại rồi cherry-pick cái squash đó k nhỉ?

Sent from Vsmart Active 3 using vozFApp
 
Bác nói đúng case của em khi đung cherry-pick lun. Hồi trước em có bị case này. Lúc đó phải chery cả 3 cái commit liên quan lun.
Mà có cách nào squash lại rồi cherry-pick cái squash đó k nhỉ?

Sent from Vsmart Active 3 using vozFApp
Theo mình 1 là cherry-pick trước xong squash
2 là squash xong cherry pick
Cách 1 thì lúc cherry-pick nó có option là không tạo commit đó, lúc đó thì bác cherry 3 cái xong, bác tạo commit trên branch của bác.

Cách 2 tù hơn, là sửa lại cái log git commit của cái branch A kia, sửa sao cho 3 cái cherry pick liền tù tỳ nhau, mà ko có conflict, sau đó squash trên branch A đó để 3 cái về 1,
rồi trên branch B cherry pick cái commit vừa gộp, hơi tù
 
1 task 1 branch
Hạn chế commit và push vô tội vạ. Nếu chỉ có minor change thì commit --fixup sau đó squash lại cho history sạch sẽ tí.

Think twice before rebase and push -f
 

Thống kê chủ đề

Ngày tạo
Ewww,
Người trả lời cuối
Diệp Vô Ưu,
Trả lời
274
Lượt xem
33.957
Quay lại
Lên đầu trang