Rewrite lại commit history của Git repo
TIL
500
Git
51
White

Huy Trần viết ngày 26/07/2017

Hôm nay mình gặp một sự cố, cũng nhỏ thôi, mà theo lời nhận xét của a @huydx thì là

alt text

Chính vì thế nên cần có nhu cầu xóa hết commit log của cái repo.

Cách làm thì rất đơn giản, tóm gọn trong các bước sau:

  • Tạo một branch trắng, không kế thừa từ bất cứ branch nào
  • Viết lại commit history
  • Force push lên remote repository

Các bước thực hiện tuần tự như sau:

Tạo branch trắng không kế thừa từ bất kì branch nào:

git checkout --orphan yolo

Tham số --orphan giúp tạo ra branch mới mà không kế thừa từ các nhánh trước đó. Toàn bộ các file đã commit sẽ bị unstaged hết.

Commit code:

Giờ thì commit lại từ đầu thôi.

git commit -m "Làm lại cuộc đời :rocket:"

Xóa master branch, đổi tên branch hiện tại:

Tiếp theo, bạn cần phải xóa branch master để chút nữa còn push code đè lên được..

git branch -D master

Lưu ý tham số -D sẽ xóa luôn branch mà không cần hỏi.

Đổi tên branch yolo thành master:

git branch -m master

Push code:

Giờ thì push code thôi, lần này là force push nên sẽ có tham số -f và đặt origin/master mới làm upstream nên sẽ có thêm tham số -u:

git push -fu master

Done. Cách này có thể áp dụng khi bạn sắp nghỉ việc, cần một lý do để sếp cho nghỉ ngay mà không cần báo trước từ 2 tuần đến 1 tháng.

huytd 26-07-2017

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

Huy Trần

102 bài viết.
1442 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
146 43
Tại sao phải viết blog kĩ thuật? Có rất nhiều bài viết trên mạng nói về vấn đề tại sao một lập trình viên nên thường xuyên viết các bài blog kĩ thu...
Huy Trần viết hơn 2 năm trước
146 43
White
143 37
(Ảnh) Tiếp tục sêri (Link) lần này, chúng ta sẽ cùng tìm hiểu và mô phỏng lại một chức năng mà mọi người đang bắt đầu sử dụng hằng ngày, đó là chứ...
Huy Trần viết hơn 1 năm trước
143 37
White
97 16
Phần 1: Tự truyện Tui và Toán đã từng là hai kẻ thù không đội trời chung trong suốt hơn mười lăm năm ròng rã. Ngay từ ánh nhìn đầu tiên đã ghét nh...
Huy Trần viết gần 2 năm trước
97 16
Bài viết liên quan
White
18 1
Toán tử XOR có tính chất: + A XOR A = 0 + 0 XOR A = A Với tính chất này, có thể cài đặt bài toán sau với độ phức tạp O(N) về runtime, và với O(1)...
kiennt viết hơn 1 năm trước
18 1
White
48 7
Tôi xin tổng hợp các cách dùng git stash tôi hay sử dụng Lưu lại thay đổi Git stash được sử dụng khi muốn lưu lại các thay đổi chưa commit, thườ...
BB viết gần 3 năm trước
48 7
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
102 bài viết.
1442 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!