Git - 意外地推到上游而不是我的分支

use*_*065 7 git github

我是git的新手.我想将我的数据推送到我的分支,但我将其推送到上游/主分支.我希望恢复推动.有什么办法吗?

任何帮助表示赞赏.

yel*_*yed 12

在本地还原并推送您的还原

git revert <commit_id>
git push upstream/master
Run Code Online (Sandbox Code Playgroud)

如果您正在与上游回购团队合作,这比删除您的历史要好.如果您进行硬重置和强制推送,最终可能会被其他人删除其他提交.最好只回滚您的更改并在团队历史记录中显示.


Jor*_*mer 6

git checkout -b myfeaturebranch
git checkout master
git reset --hard HEAD~1
git push --force
Run Code Online (Sandbox Code Playgroud)

这将执行以下操作:

  1. 使用您所做的提交创建一个新的本地分支
  2. 回到主分支
  3. 将提交指针重置为一次提交
  4. 推动重置,从远程删除提交

这里的危险是,如果其他任何人从大师那里拉出来的那些提交将丢失。在这种情况下,您将要使用revert代替reset,将重置记录为提交历史的一部分。

git checkout -b myfeaturebranch
git checkout master
git revert HEAD~1
git push
Run Code Online (Sandbox Code Playgroud)

  • 这对于团队项目不利,您最终可能会删除其他人的提交。最好推送恢复的提交。 (2认同)
  • @mononoke83,我也是!我们很幸运,因为我们正在恢复错误的提交,所以我们收到了错误!长话短说,最好使用: `git revert &lt;commit_id&gt;` 而不是 `git revert HEAD~1` (2认同)