Tôi muốn xóa hai cam kết mới nhất với thông điệp cam kết "đầu tiên" và "giây". Trước tiên tôi kéo thạc sĩ sau đó tôi sử dụng lệnhmuốn bỏ nhiều cam kết trong github
git rebase -i HEAD~2 master
Nó cho thấy tôi cả hai cam kết trong một trình soạn thảo như thế này:
pick first
pick second
Sau đó, tôi thay đổi trình soạn thảo này như:
pick first
squash second
Sau khi lưu những thay đổi tôi nhận được thông báo này:
Successfully rebased and updated refs/heads/master.
Nó đã thay đổi bất cứ điều gì trong chủ từ xa. Để áp dụng những thay đổi này tôi sử dụng lệnh git push
và đã nhận lỗi sau:
To https://github.com/aneelatest/GITtest.git
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'https://github.com/test/GITtest.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Merge the remote changes (e.g. 'git pull')
hint: before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
Sau đó, tôi lại chạy lệnh git pull
và nó kết hợp tổng thể nguồn gốc và thực hiện một cam kết với điều này cam kết thông báo:
Merge branch 'master' of https://github.com/aneelatest/GITtest
Sau khi tôi chạy lệnh git push, nó đè hai commit thành một với thông điệp "đầu tiên". Vấn đề là ở chủ từ xa, tôi có bây giờ Bốn cam kết:
first
second
Merge branch 'master' of https://github.com/test/GITtest
first
Nơi tôi muốn chỉ có một cam kết mà là đè bẹp một với cam kết thông báo "đầu tiên". Bất kỳ ý tưởng nào mà tôi đang làm sai?
Bạn không phải bí bóng nữa: chủ sở hữu có thể làm điều đó cho bạn (kể từ tháng 3 năm 2016): xem http://stackoverflow.com/a/36377439/6309 – VonC