如何重置远程分支的提交? (使用git命令)

时间:2018-08-10 06:07:35

标签: git bitbucket

如何重置远程分支的提交? (使用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)

请让我知道任何解决方案。.谢谢

5 个答案:

答案 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)

  1. 删除“重置提交HEADNUM”提交。
  2. 从起点拉'ISSUE FIX A'。
  3. 使用git reset --soft HEAD〜

答案 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