2013-10-08 18 views
5

tôi đã thực hiện git này lệnh:Bitbucket git reset

git reset --hard hash 
git push -f 

Tất cả là tốt tại địa phương, tôi không thấy bất kỳ cam kết sau khi 'băm' cam kết. Tất cả là tốt sau khi đẩy quá, không có lỗi, nhưng trên bảng điều khiển chính Bitbucket của kho lưu trữ của tôi (Tổng quan) cam kết cuối cùng vẫn còn. Và tôi không hiểu nó, tôi có thiết lập lại kho lưu trữ từ xa hay không?

Trả lời

4

Vấn đề là SHA của bạn không thay đổi nên Git không thực sự cập nhật điều khiển từ xa trên BitBucket. Lịch sử sau khi bạn đặt lại vẫn tồn tại, bạn có thể thực hiện git pull và repo cục bộ của bạn sẽ nhận được tất cả các cam kết sau này.

Sau khi thực hiện git reset --hard HASH, hãy thực hiện git reset HEAD~ (lưu ý: đây là cài đặt lại mềm) Sau đó, đề xuất thay đổi. Điều này sẽ tạo ra một SHA mới cho các cam kết và khi bạn ép buộc thay đổi của bạn, cây trên BitBucket nên được cập nhật như bạn mong đợi.

CẢNH BÁO này đang thay đổi lịch sử và nếu có những người khác đã kéo từ repo, nó sẽ gây ra rắc rối. Đây không phải là quy trình làm việc bình thường để hoàn tác các thay đổi trên một nhánh từ xa, bạn nên sử dụng git revert.

0

git reset không xóa các cam kết; nếu đó là ý định của bạn. Nó đặt lại cây làm việc hiện tại (các thay đổi được dàn dựng được cam kết) trên máy cục bộ của bạn.

+0

không có cách nào để xóa cam kết hoặc xóa lịch sử bitbucket? – malcoauri

+0

hoặc đặt lại cây từ xa để ẩn cam kết – malcoauri

+0

'git revert' có thể hoàn tác một cam kết được chỉ định (mặc dù không hợp nhất các cam kết). Bên ngoài đó; đặt cược tốt nhất của bạn sẽ là bắt đầu lại. – jackyalcine

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