如何重置远程分支的提交? (使用git命令)
情况是这样
分支A
git add modify files
git commit -m "ISSUE FIX A"
git push origin A
在问题修正提交中发现问题,因此我想重置此提交
git reset HEAD^
git commit -m "Reset commit HEADNUM"
git push origin A
然后显示错误消息
! [rejected] BRANCH A -> BRANCH A (non-fast-forward)
请让我知道任何解决方案。.谢谢
答案 0 :(得分:1)
只需在本地解决此问题,然后保存并保存:
git add .
git commit --amend --no-edit
git push --force-with-lease
提交及其哈希将更改,并保持相同的提交消息。 --force-with-lease
会用您的本地覆盖远程分支,除非其他人对此进行了提交。
答案 1 :(得分:0)
由于您要编辑历史记录,因此需要使用$PATH
。
尽管只有在您按自己的请求请求时,或者在历史发生变化时人们不会感到惊讶的地方,才可以这样做。
顺便说一句,您可以使用export PATH /home/foobar/.bin:$PATH
cp target/release/brainfast /home/foobar/.bin
brainfast abc.txt 1 3 99 u
来修改最后的提交,而无需使用git push --force origin A
来修改提交。
答案 2 :(得分:0)
答案 3 :(得分:0)
您要为最后一次提交添加更多更改,只需将它们按正常方式暂存然后再次提交即可:
$ git add some / changed / file.ext $ git commit --amend -m“提交消息”
或者您可以使用硬命令和软命令:
既不会产生任何新的提交,也不会删除任何旧的提交。通过将当前的HEAD分支重置为旧版本(也称为“回滚”到该旧版本)来工作:
$ git reset --hard 提交ID 执行此命令后,您当前签出的分支将位于版本 commitID 。在此分支之后的提交实际上已被撤消,并且在该分支的历史中不再可见。
但是要小心:使用“ --hard”选项调用该命令将丢弃您当前可能拥有的所有本地更改。该项目已完全恢复到以前的版本中的状态。 如果使用“ --keep”而不是“ --hard”来调用它,则回滚修订中的所有更改将保留为工作目录中的本地更改。
答案 4 :(得分:0)
注意::如果这是其他人使用的公共.gitmodules
存储库,则您有责任告知您的更改。因此他们可以使用原点执行重置。
对于本地用户: branch
z99909W是在bitbucket中找到的提交ID。
对于存储库: git reset --hard z99909W