01/10/2018, 00:33
Hỏi push các commit cũ lên remote github?
Chào các bạn! cho mình hỏi một chút. Ví dụ mình tạo khoảng 5 commit 1 -> 2 -> 3 ->4 ->5 (dữ liệu pull mới nhất sau đó mình mới tạo các commit nhé). Mặc định dùng lệnh: git push origin margin nó sẽ đẩy commit cuối cùng là số 5 lên kho chứa. Nhưng mình chỉ muốn đẩy commit số 3 lên kho chứa thôi thì dùng lệnh như thế nào các bạn nhỉ. Cám ơn!
Bài liên quan
Đầu tiên bạn dùng lệnh
git log
để liệt kê danh sách các commit.Ở mỗi commit sẽ có 1 commit ID, là 1 dạng hash kiểu
a1b2c3
gì đó, copy cái ID của commit thứ 3, hoặc chỉ cần copy 4 kí tự đầu của cái ID là đủ.Check out branch mới từ cái commit đó:
Tại đây thì bạn có cái branch mới là
latuine
, head của nó dừng lại tại cái commit thứ 3.Xong rồi push cái branch này lên remote.
Xong phim
Bạn tìm hiểu về cherypick trong Git nhé.
Chỉ push đc branch thôi hả bạn. Xong lại tích hợp branch naỳ vào master
git reset --hard [id of commit]
Bạn ơi đây là xóa commit mà…
@Nguyen_Duc_Hoang1 sorry bác, chưa quen cái giao diện lắm, giờ mới thấy reply của bác.
Chưa hiểu câu hỏi lắm, vậy ý bác là muốn “xóa” commit 4, 5 trên master đi phải ko?
Vậy thì có thể làm cách khác như bác @Cong_Nguyen nói, đầu tiên dùng
git reset
để đưa cái số 3 thành phiên bản mới nhất (HEAD)Sau đó thì force push để ghi đè master trên origin:
Làm vậy thì bác thủ tiêu luôn 2 cái commit 4, 5 rồi đấy, cái mới nhất giờ thành số 3 (ở trên “kho chứa” luôn)
git checkout [id of commit].
nguồn: http://stackoverflow.com/questions/4114095/how-to-revert-git-repository-to-a-previous-commit
Trời ơi không xóa bác ơi! giả sử commit 4 và 5 vẫn tiếp tục làm việc. Nhưng mình chỉ đưa 3 lên thôi
À à à :v hiểu zồi hiểu zồi =))))
Vậy bác có thể push kiểu:
Ví dụ
Với cách này thì bác cũng ko cần làm gì với cái working copy trong máy, cho dù nó đang ở commit thứ 8, 9 thì bác vẫn push commit số 3 vô tư (tất nhiên là với điều kiện trước đó bác chưa có push mấy cái commit sau số 3 lên)
Cám ơn bác mấy lần thử để commit id ở cuối ko đc =D