Git 重置不对本地或远程进行任何更改
Git reset not making any changes to local or remote
我有一个需要 git reset --hard
到特定提交的 Bitbucket 存储库。在此操作之前,我有这个:
% git status
On branch master
Your branch and 'origin/master' have diverged,
and have 16 and 15 different commits each, respectively.
(use "git pull" to merge the remote branch into yours)
nothing to commit, working tree clean
我 运行 git reset --hard
在本地使用这样的提交 ID 命令:
git reset --hard 798cd84
然后我 运行 git pull
并且发生了预期的快进。
Updating 798cd845..22bd077a
Fast-forward
.
.
.
24 files changed, 705 insertions(+), 80 deletions(-)
之后,我做了git status
,看到它在说
% git status
On branch master
Your branch is up to date with 'origin/master'.
nothing to commit, working tree clean
但本地没有更改为 git log
。我尝试了 git commit -m "my comments"
,结果显然没有提交任何内容。
On branch master
Your branch is up to date with 'origin/master'.
nothing to commit, working tree clean
在 Bitbucket 上没有任何变化,很明显,因为我没有任何东西可以推送。但是当我试图推动任何东西时,遥控器什么也没有。它只是说 Everything up-to-date
.
那么,如果我在本地无法使用 git commit
或 git push
做任何事情,我该如何在远程上实现此更改?
如果我把这件事严重搞砸了,我该如何恢复到本地状态以便我可以尝试其他方法?
如果我理解正确的话,我认为关键是这一行:
Your branch and 'origin/master' have diverged, and have 16 and 15 different commits each, respectively.
因此,两个版本的分支都有共同的历史记录,然后:
- 在您的本地历史记录中有 16 次提交
- 远程历史记录中有 15 次提交
考虑到数字的相似性,16 个本地提交中的 15 个 是 15 个远程提交中的 并行版本 .也就是说,您或其他人拥有 运行 git rebase
或相关命令,并创建了这些提交的新版本。
因此,当您丢弃 16 次提交并拉入远程 15 次提交时,大部分日志历史看起来都一样 - 所有相同的提交消息,作者,和作者身份日期,除了您丢弃的那次额外提交。
换句话说,它只是看起来与远程分支同步没有任何区别,因为它已经非常相似。
我有一个需要 git reset --hard
到特定提交的 Bitbucket 存储库。在此操作之前,我有这个:
% git status
On branch master
Your branch and 'origin/master' have diverged,
and have 16 and 15 different commits each, respectively.
(use "git pull" to merge the remote branch into yours)
nothing to commit, working tree clean
我 运行 git reset --hard
在本地使用这样的提交 ID 命令:
git reset --hard 798cd84
然后我 运行 git pull
并且发生了预期的快进。
Updating 798cd845..22bd077a
Fast-forward
.
.
.
24 files changed, 705 insertions(+), 80 deletions(-)
之后,我做了git status
,看到它在说
% git status
On branch master
Your branch is up to date with 'origin/master'.
nothing to commit, working tree clean
但本地没有更改为 git log
。我尝试了 git commit -m "my comments"
,结果显然没有提交任何内容。
On branch master
Your branch is up to date with 'origin/master'.
nothing to commit, working tree clean
在 Bitbucket 上没有任何变化,很明显,因为我没有任何东西可以推送。但是当我试图推动任何东西时,遥控器什么也没有。它只是说 Everything up-to-date
.
那么,如果我在本地无法使用 git commit
或 git push
做任何事情,我该如何在远程上实现此更改?
如果我把这件事严重搞砸了,我该如何恢复到本地状态以便我可以尝试其他方法?
如果我理解正确的话,我认为关键是这一行:
Your branch and 'origin/master' have diverged, and have 16 and 15 different commits each, respectively.
因此,两个版本的分支都有共同的历史记录,然后:
- 在您的本地历史记录中有 16 次提交
- 远程历史记录中有 15 次提交
考虑到数字的相似性,16 个本地提交中的 15 个 是 15 个远程提交中的 并行版本 .也就是说,您或其他人拥有 运行 git rebase
或相关命令,并创建了这些提交的新版本。
因此,当您丢弃 16 次提交并拉入远程 15 次提交时,大部分日志历史看起来都一样 - 所有相同的提交消息,作者,和作者身份日期,除了您丢弃的那次额外提交。
换句话说,它只是看起来与远程分支同步没有任何区别,因为它已经非常相似。