2014-09-16 19 views
5

Tôi đã thực hiện một cam kết sai và tôi đã đẩy nó vào kho lưu trữ bitbucket.org riêng của tôi. Làm cách nào tôi có thể xóa hoàn toàn cam kết này khỏi lịch sử?Hoàn toàn xóa cam kết khỏi lịch sử Bitbucket

tôi thử như sau:

git reset --hard HEAD~1 
git reset HEAD~ 
git commit -m "some message" 
git push -f 

Tôi đã làm điều này dựa trên giải pháp từ Bitbucket git reset

Tuy nhiên, cam kết trước đó có thể truy cập.

Ở bên phải bảng điều khiển kho lưu trữ, trong hoạt động gần đây, có một liên kết đến các thay đổi trong cam kết mà tôi muốn xóa khỏi lịch sử.

Thông tin này (lịch sử mà tôi định xóa) được lấy từ kho lưu trữ của tôi chưa?

Hoặc

  1. Đây có phải là một số tính năng của bitbucket.org?
  2. Tôi có thực hiện một số bước sai? Cái nào
  3. Làm cách nào để xóa hoàn toàn cam kết khỏi lịch sử trên bitbucket.org?
+0

Hãy thử [pháp được đề nghị GitHub của] (https://help.github.com/articles/remove-sensitive-data). – Ryan

+0

Vấn đề là, tôi không thể hiểu được nếu các cam kết vẫn có thể truy cập được là vì tôi đã thực hiện một số bước sai, hoặc đây là một số tính năng đặc biệt của Bitbucket. Không có dấu hiệu của các cam kết đã xóa trong 'git log' hoặc nguồn cấp dữ liệu RSS của Bitbucket cho kho lưu trữ, nhưng một số liên kết trong bảng lịch sử hướng dẫn tôi đến những cam kết đã xóa – Nima

+0

Tôi có cùng một vấn đề. Ngoài ra, tôi có thể truy cập các cam kết đã xóa từ Jira. – Jorj

Trả lời

1

Bạn có thể đạt được điều đó bằng cách thả cam kết và buộc đẩy nhánh cập nhật vào điều khiển từ xa của bạn. Lưu ý: cẩn thận nếu người khác đã thanh toán chi nhánh.

Giả sử bạn là như sau và bạn muốn xóa commit 200:

commit 300 
commit 200 
commit 100 

Làm như sau:

git rebase -i HEAD~3

Bây giờ, xoá dòng của commit 200.

Lưu tập tin, và sau đó buộc đẩy chi nhánh để điều khiển từ xa:

git push -f origin <branch_name> 
+0

Cảm ơn câu trả lời của bạn, nhưng như tôi đã chỉ ra trong câu hỏi tôi đã thử'git push -f' – Nima

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