我不小心用错误的行尾(CRLF 而不是 LF)推送了我的提交。是否可以将其回滚并再次发送正确的行尾。因为 pull request 现在一团糟。
您可以通过运行
git commit --amend
而不是 git commit
来修改最后一次提交。这不会创建新的提交,而是将分阶段更改添加到最后一次提交。
请注意,这将 rewrite 以前的提交,导致与 rebase 时相同的效果。生成的 Git 提交对象将与之前的不同,依赖该对象的每个人都会遇到问题。 – 一般来说,你不应该在发布后重写提交。
但是在您的情况下,当您提出拉取请求时,您可以这样做,并且通常还希望通过重新设置来改进您的提交,直到它们在拉取请求中被接受。
我有一个类似的问题,我为基于 Windows 的回购创建了一个拉取请求,我的 gitconfig 将
autocrlf
设置为 false false
而不是 true
。我必须修复 multiple 提交的行尾。以下是我的修复方法:
autocrlf
设置为真:git config --global core.autocrlf true
git rebase -i <endCommit>
。对于 endCommit,使用要修复的最后一次提交之后的提交的哈希/引用。edit
。git reset head~
、git add .
、git commit -m <comment>
、git rebase --continue
。这将使用更正的行结尾重新应用提交。git push origin <branchName> -f
这很乏味,我很想知道是否有人知道更简单的方法。