gpt4 book ai didi

git reset --hard to commit 不起作用 - 提示是 HEAD 在后面

转载 作者:太空狗 更新时间:2023-10-29 14:31:44 25 4
gpt4 key购买 nike

我想将我的本地分支重置为提交 as288sa。提交存储在远程存储库和我的本地存储库中。我想使用 --hard 标志进行重置。

git reset --hard as288sa 

Checking out files HEAD is now at as288sa

然后我想addcommit resetpush 提交到远程存储库。

git add -A
git commit -m "reseted hard"

On branch myBranch nothing to commit, working tree clean

git push origin myBranch

rejected error: failed to push some refs to git@... Updates were rejected because the tip of you current branch is behind its counterpart. Integrate the remote changes (e.g. git pull) before pushing changes

所以我做了一个 git pull,然后是 git add -A 和一个 git commit 以及一个 git push 然后尝试 git reset --hard as288sa。我再次收到相同的错误消息。

发生了什么事?

最佳答案

您不“添加并提交重置”; add 和 commit 是您应用工作树更改以创建新提交的方式,而 reset 只是移动 ref 以指向现有提交。我希望 addcommit 命令不会提示没有要添加/清空提交,除非您在工作树中进行了不相关的更改。

好吧,无论如何,然后你尝试推送,但正如你所见,git 不喜欢它,因为你试图将 ref 推送给祖先,而 git 认为这不是一个好主意。它告诉您进行 pull ,但是当您这样做时,通过将 myBranch 的本地引用移回原点之前放置它的位置来撤消重置。

这就是发生的事情......但在我告诉你如何修复它之前,我应该提到你正在做的事情会导致其他人 pull myBranch 出现问题,如果有很多用户,这可能这不是你想做的。

按照您的要求执行,在重置之后但不进行 pull (甚至不用担心添加或提交)您可以使用 -f 标志进行推送。您可能有也可能没有这样做的许可,但即使您这样做,说真的,这也可能不是您想要做的。

相反,我怀疑您真正应该做的是还原提交 - 即创建一个新的提交来反转先前提交的更改,将树返回到与先前提交相同的状态,但在保留已发布历史记录的方式。查看 git revert

的文档

关于git reset --hard to commit 不起作用 - 提示是 HEAD 在后面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41351079/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com