Tôi đã sau trong công việc phải làm văn bản của git rebase -i HEAD~2
:Git: "không phải là 'bí' không có trước có thể cam kết" lỗi khi rebase
pick 56bcce7 Closes #2774
pick e43ceba Lint.py: Replace deprecated link
# Rebase 684f917..e43ceba onto 684f917 (2 command(s))
#
# Commands:
# p, pick = use commit
# r, reword = use commit, but edit the commit message
# e, edit = use commit, but stop for amending
# s, squash = use commit, but meld into previous commit
# f, fixup = like "squash", but discard this commit's log message
# x, exec = run command (the rest of the line) using shell
# d, drop = remove commit
#
# These lines can be re-ordered; they are executed from top to bottom.
#
# If you remove a line here THAT COMMIT WILL BE LOST.
#
# However, if you remove everything, the rebase will be aborted.
#
# Note that empty commits are commented out
Bây giờ, khi tôi cố gắng dẹp một đầu tiên (56bcce7
) và chọn một trong những thứ hai bằng cách thêm "s" trước khi là người đầu tiên, tôi nhận được lỗi sau:
Cannot 'squash' without a previous commit
ai đó có thể giải thích cho tôi ý nghĩa của nó, và làm thế nào để làm điều đó?
Tôi muốn dẹp cam kết đầu tiên (56bcce7
) và "lựa chọn và xây dựng lại và" thứ hai (e43ceba
) cam kết
Thay đổi HEAD ~ 2 thành HEAD ~ 3 nếu bạn thực sự muốn bí. – ElpieKay
Và có thể sử dụng --root, nếu HEAD ~ 2 là cam kết đầu tiên của bạn: https://stackoverflow.com/a/598788/2444812 – wirap
Để loại bỏ lông tơ, bạn chỉ thực sự cần 4 dòng đầu tiên của ví dụ được dán. – wirap