2011-02-10 25 views
10

Tôi vừa bắt đầu sử dụng git. Rebase là công cụ tuyệt vời. Tôi nên đã sử dụng nó trong một trường hợp cụ thể trước đó.tôi có thể xóa các cam kết cũ không?

có cách nào hoàn toàn chấp nhận được để xóa các cam kết cũ vì lợi ích của các cam kết rõ ràng không?

Trả lời

12

Bạn chỉ nên thực hiện điều này cho các cam kết chưa được đẩy ngược dòng. Điều đó nói rằng, tôi thấy dễ nhất để sử dụng git rebase -i <commit> trong đó <commit> là id của cam kết ít nhất là cũ nhất mà bạn không muốn gây rối. Khi trình soạn thảo của bạn bật lên, nó sẽ chứa các hướng dẫn về cách bí và/hoặc xóa các cam kết.

6

Nói chung, nếu bạn đã chia sẻ một cam kết với người khác, đừng rebase nó.

Nếu bạn chưa chia sẻ cam kết với bất kỳ ai khác, bạn có thể làm bất cứ điều gì bạn muốn.

Xem phần "TUYỂN DỤNG TỪ UPSTREAM REBASE" của git-rebase manpage để biết thêm thông tin.

+0

trang người đàn ông đó thực sự mất phương hướng với tôi. Nếu tôi có 10 cam kết và tất cả tôi muốn làm là squash 3 4 và 5 với nhau, làm thế nào tôi sẽ làm điều đó? – griotspeak

+2

@griot Bắt đầu rebase tương tác và đánh dấu chúng bị đè bẹp. –

+0

Lưu ý: khôi phục từ 'git push -f' sẽ dễ dàng hơn với Git 2.0: xem http://stackoverflow.com/a/20423029/6309 – VonC

Các vấn đề liên quan