Git 按“远程”强制我撤消本地硬重置

Git 按“远程”强制我撤消本地硬重置,git,atlassian-sourcetree,Git,Atlassian Sourcetree,我使用git命令行进行学习,使用源树可视化各种命令的效果 我从头开始,进行4次更改,然后进行4次提交,并将其推送到我的原始主机4次: commit a commit b commit c commit d 一、 然后,在创建这些提交之前,发出命令git reset--hard,将我带到重新开始的地方 我可以在SourceTree上看到,我已经成功地擦除了所有提交,并将所有内容硬重设回初始状态 当然,我从SourceTree得到一个通知,我现在是远程源主机后面的4个提交,这是真的 现在,我尝试推

我使用git命令行进行学习,使用源树可视化各种命令的效果

我从头开始,进行4次更改,然后进行4次提交,并将其推送到我的原始主机4次:

commit a
commit b
commit c
commit d
一、 然后,在创建这些提交之前,发出命令
git reset--hard
,将我带到重新开始的地方

我可以在SourceTree上看到,我已经成功地擦除了所有提交,并将所有内容硬重设回初始状态

当然,我从SourceTree得到一个通知,我现在是远程源主机后面的4个提交,这是真的

现在,我尝试推送我的当前状态,这样我的遥控器也会更新;i、 重新设置为开始,就像我的本地状态一样

但是,这被拒绝了,所以我想知道是否有一个特殊的命令来强制推送并同时擦除我的所有提交,并将我的远程上的所有内容硬重设回初始状态

p、 显然,当我接受SourceTree的建议并再次退出时,我又回到了我最近的情况;这意味着这个un会执行我的硬重置,所以我不应该拉,而是尝试将我当前的新状态推到遥控器上,这样我的硬重置也会反映在遥控器上,但我如何做到这一点呢?

强制(-f)推

注意:该命令很危险,它将用本地主机的提交历史替换远程主机的提交历史

$ git push -f origin master

Git在大多数情况下都能很好地向您提供有用的错误消息,我只是在本地复制了您的示例,并向我介绍了

! [rejected]  

error: failed to push some refs to {myRepo}
hint: Updates were rejected because the tip of your current branch is behind 
hint: its remote counterpart. Integrate the remote changes (e.g. hint: 'git pull ...') before pushing again. 
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
“git push--help”然后会显示“git push”的文档(包含很多有用的信息!),包括--force标志的文档

-f
--强制力
通常,该命令拒绝更新远程引用,该远程引用不是用于覆盖它的本地引用的祖先。此外,当使用--force with lease选项时,该命令拒绝更新当前值与预期值不匹配的远程引用

此标志禁用这些检查,并可能导致远程存储库丢失提交;小心使用

请注意--force应用于所有被推送的ref,因此将其与push.default设置为matching或与配置了remote.*的多个推送目标一起使用。push可能会覆盖当前分支以外的ref(包括严格位于远程对应对象后面的本地ref)。要仅强制推送到一个分支,请在refspec前面使用+来推送(例如git push origin+master来强制推送到主分支)。请参见。。。详细信息请参见上文第节


如何
git push-f origin HEAD
?我们是否有类似的命令用于从已重置为先前提交的远程(
origin master
)强制拖动?我尝试了git pull-f,但没有更新已经倒转的回购协议的本地副本。我以前的问题是强制将本地倒带推到一个遥控器上,但现在我想知道如何强制将同一个遥控器上的倒带推到另一个本地器上,该本地器必须更新以反映遥控器的重置情况…通过
git fetch
git reset--Hard origin/
使用远程分支硬重置您的本地分支,谢谢。