Tôi đã có một kho lưu trữ có một số cam kết xấu về nó (D, E và F cho ví dụ này).
ABCDEF chính và nguồn gốc / chủ
Tôi đã sửa đổi kho lưu trữ cục bộ cụ thể bằng a git reset --hard
. Tôi đã lấy một nhánh trước khi thiết lập lại để bây giờ tôi có một repo trông giống như:
A-B-C master
\ D-E-F old_master
A-B-C-D-E-F origin/master
Bây giờ tôi cần một số phần của các cam kết xấu đó vì vậy tôi đã chọn các bit tôi cần và thực hiện một số cam kết mới để bây giờ tôi có các mục sau:
A-B-C-G-H master
\ D-E-F old_master
Bây giờ tôi muốn đẩy tình trạng này đến repo từ xa. Tuy nhiên, khi tôi cố gắng thực hiện một git push
Git lịch sự đưa cho tôi bàn chải:
$ git push origin +master:master --force
Total 0 (delta 0), reused 0 (delta 0)
error: denying non-fast forward refs/heads/master (you should pull first)
To git@git.example.com:myrepo.git
! [remote rejected] master -> master (non-fast forward)
error: failed to push some refs to 'git@git.example.com:myrepo.git'
Làm cách nào để có được repo từ xa để lấy trạng thái hiện tại của repo cục bộ?
git push -force
cách cẩn thận hơn .