Hôm qua vừa lỡ tay push nhầm một đống code lỗi lên nhánh chính của dự án, xong ngồi toát mồ hôi hột không biết phải xử lý thế nào cho êm. Lên mạng tìm hiểu thì thấy mấy ông anh cứ khuyên dùng `git revert` đi cho lành, đừng có xài `git reset` mà bay màu hết lịch sử. Khổ cái là mình đọc tài liệu tiếng Anh cứ lú cả người, chưa thông lắm về cái cơ chế hoạt động thực tế của nó. Có bác nào rành vụ này giải ngố giúp mình phát xem bản chất thật sự của `git revert` là gì thế. Khi mình chạy lệnh này thì Git nó tự động tạo ra một commit mới để đảo ngược lại, hay là nó xóa sừ cái cũ đi vậy các bác? Dùng cái này trong team đông người thì có sợ làmconflict tung tóe lên không hay cứ vô tư triển khai thôi? Ai có kinh nghiệm thực chiến khoản này chỉ giáo em vài đường cơ bản với nhé. Cảm ơn anh em trước nhiều lắm luôn.
Hiểu đúng về Git revert là gì trong quản lý mã nguồn ra sao.
Thảo luận (6 bình luận chính)
Cứ bình tĩnh, ông anh khuyên dùng `git revert` là chuẩn bài rồi đấy, đừng tá hỏa lên mà xài `reset --hard` có ngày bay màu sạch code của team trên remote. Bản chất của `git revert` là tạo ra một commit mới để đảo ngược hoàn toàn mấy thay đổi ngớ ngẩn của đống code lỗi kia, vừa cứu được bàn thua trông thấy lại vừa giữ nguyên lịch sử commit sạch đẹp cho mọi người cùng check. Cứ gõ `git revert ` rồi `git push` lên nhánh chính là êm ru ngay, qua nay chắc hú vía lắm đúng không chủ thớt.
Cứ bình tĩnh, mấy ông anh khuyên dùng `git revert` là chuẩn bài rồi đấy, đừng dây vào `git reset --hard` nếu không muốn bay màu cả đống lịch sử trên remote. Bản chất của `git revert ` là tạo ra một commit hoàn toàn mới để đảo ngược (undo) lại đúng những thay đổi của cái commit lỗi kia, lịch sử git vẫn giữ nguyên vẹn nên team không bị conflict hay mất trace gì cả. Cứ quất lệnh `git log --oneline` copy cái mã hash commit lỗi vừa push rồi phang `git revert [hash]` xong `git push` lên là xong phim, ngồi thở phào được rồi chủ thớt nhé.
Mấy ông anh khuyên chuẩn bài rồi đấy, cứ `git revert` mà giã cho tôi, tuyệt đối tránh xa `git reset --hard` khi code đã đẩy lên nhánh `main` hay `master` chung của team. Bản chất của `git revert ` là tạo ra một commit hoàn toàn mới để đảo ngược lại đống thay đổi của cái commit lỗi kia, lịch sử git vẫn giữ nguyên vẹn nên không sợ làm phiền đến anh em đồng nghiệp đang kéo code về. Cứ gõ lệnh đó xong, giải quyết mấy cái conflict (nếu có), rồi `git push` lên là lại yên tâm đi uống trà đá thôi chủ thớt.
Vụ này đợt trước mình cũng từng một lần suýt bay màu cả hệ thống production chỉ vì lỡ tay push nhầm cục code test chưa fix bug lên nhánh main. Mấy ông anh khuyên dùng `git revert` là chuẩn bài rồi đấy chủ thớt ạ, đừng dại dột xài `git reset --hard` nếu đang làm việc nhóm vì nó sẽ làm lệch lịch sử commit của cả team, lúc merge lại chỉ có nước khóc thét. Bản chất của `git revert` là nó sẽ tạo ra một commit mới hoàn toàn ngược lại với cái commit lỗi kia, vừa xóa được đống code tào lao vừa giữ nguyên được vết tích lịch sử để người khác còn biết đường mà lần. Cứ `git log` lấy cái mã commit lỗi, rồi phang lệnh `git revert `, giải quyết xong nhớ `git push` lên là lại ngon nghẻ ngay.
Mấy ông anh khuyên chuẩn bài rồi đấy, cứ `git revert ` rồi gõ `:wq` lưu lại là xong, nó sẽ tạo ra một commit mới để đảo ngược đống code tào lao kia mà vẫn giữ nguyên lịch sử cho cả team cùng thấy. Tuyệt đối đừng dây dưa với `git reset --hard` nếu đang làm việc nhóm, không khéo bay màu code của đồng nghiệp lúc nào không hay lại mất Tết. Làm ăn cứ cái nào an toàn, minh bạch lịch sử dòng tiền lẫn dòng code thì chiến, thế mới bền được chủ thớt ạ.
Anh em hay truyền tai nhau dùng `git revert` khi push nhầm code lên nhánh chính là cực kỳ chuẩn bài rồi, đỡ sợ làm bay màu lịch sử commit của cả team. Bản chất của lệnh này là tạo ra một commit hoàn toàn mới để đảo ngược lại đống thay đổi của cái commit lỗi kia, lịch sử git vẫn sạch đẹp và ai cũng kéo về được bình thường. Chủ thớt cứ làm theo 3 bước này là êm chuyện: , chạy lệnh `git log` để copy lại cái mã hash (SHA) của cái commit lỗi vừa push. Tiếp theo, gõ `git revert ` rồi bấm Enter để Git tự động sinh ra một commit xóa bỏ phần code lỗi đó. , chỉ việc `git push origin ` lên lại remote là xong, đội ngũ dự án lại bình yên vô sự.
VIB nổi tiếng là mấy con bot duyệt tự động của nó chảnh và cực kỳ khó tính kh...
Tại chủ đề: Lăn tăn giữa việc tự động tăng hay chủ động gọi tổng đài để nâng hạn mức thẻ tín dụng VIB thế nào.Cái cảnh bu vào một nhánh `main` xong ngồi sửa conflict căng mắt ra thì ai mớ...
Tại chủ đề: Code chung 1 nhánh thì hay lỗi, vậy Git branch là gì để tách code an toàn ra sao.Làm IT khách sạn tưởng nhàn mà hóa ra ôm cả đống việc từ hạ tầng đến web phết...
Tại chủ đề: Mới nhận việc IT khách sạn mà nghe sếp nhắc Git là gì thế.Đọc cái đoạn "nhức buốt đến tận óc" của chủ thớt mà thấy đồng cảm, đợt trước ...
Tại chủ đề: Cách chữa đau răng sâu tại nhà nhanh và hiệu quả thế nào.Cứ ngồi nhà mở điện thoại lên nộp qua Cổng Dịch vụ công Quốc gia hoặc app Mom...
Tại chủ đề: Nộp tiền phạt vi phạm giao thông ở đâu nhanh gọn nhất.