我不小心用错误的行结尾推送了我的提交(CRLF而不是OF)。是否可以将其回滚并再次使用右线结束发送。因为拉请求现在很乱。
答案 0 :(得分:4)
您可以通过运行git commit --amend
而不是git commit
来修改上次提交。这不会创建新的提交,而是将暂存的更改添加到上次提交。
请注意,这将重写之前的提交,从而产生与重新定位时相同的效果。生成的Git提交对象将与前一个不同,并且依赖于该对象的每个人都会遇到问题。 - 一般情况下,一旦发布,就不应重写提交。
但是,在您的情况下,当您提出拉取请求时,您可以执行此操作,并且通常还希望通过重新定位来改进您的提交,直到拉取请求中接受它们为止。
答案 1 :(得分:1)
我遇到类似的问题,我为基于Windows的仓库创建了拉取请求,而我的gitconfig将autocrlf
设置为false false
而不是true
。我必须修复多个提交的行结尾。以下是我修复的方法:
autocrlf
设置为true: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
这很乏味,我有兴趣知道是否有人知道更简单的方法。