Git 母版之前的本地副本

Git 母版之前的本地副本,git,github,git-push,git-clone,git-pull,Git,Github,Git Push,Git Clone,Git Pull,我最近把我用Git跟踪的一个项目搞得一团糟。我做了几次更改,没有将本地repo的更改恢复到原来的位置,而是决定将repo再次克隆到我机器上的另一个目录中,以创建某种类型的备份(我知道是冗余的)。然后我继续并恢复了原始本地repo中的更改,并且没有使用/不需要新的克隆,因为我能够修复原始本地副本中的所有内容 现在的问题是,当我尝试推送到GitHub时,Git抛出以下错误: To github.com:<my-username>/<repo-name>.git ! [rej

我最近把我用Git跟踪的一个项目搞得一团糟。我做了几次更改,没有将本地repo的更改恢复到原来的位置,而是决定将repo再次克隆到我机器上的另一个目录中,以创建某种类型的备份(我知道是冗余的)。然后我继续并恢复了原始本地repo中的更改,并且没有使用/不需要新的克隆,因为我能够修复原始本地副本中的所有内容

现在的问题是,当我尝试推送到GitHub时,Git抛出以下错误:

To github.com:<my-username>/<repo-name>.git
 ! [rejected]        master -> master (fetch first)
error: failed to push some refs to 'github.com:<my-username>/<repon-ame>.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
到github.com:/.git
! [已拒绝]主控->主控(先取)
错误:无法将某些引用推送到'github.com:/.git'
提示:更新被拒绝,因为远程包含您所做的工作
提示:本地没有。这通常是由另一个存储库推送引起的
提示:指向同一引用。您可能希望首先集成远程更改
提示:(例如,“git pull…”)然后再推。
提示:有关详细信息,请参阅“git push--help”中的“关于快进的说明”。
自从克隆了回购协议之后,我还没有向它推出任何东西,也没有其他人参与该项目,所以我不确定为什么它会领先于我的本地副本。简单地将其克隆到另一个目录是否会导致主目录领先

所以我的问题是,我如何在不首先从master中拉入的情况下继续推送它,因为我确信
git pull
将删除我对原始目录(第一个克隆)中的本地文件所做的更改。如果必须的话,我会手动复制/粘贴以更新文件,因为文件不多,以后我也不会再回到这个项目。但我只是想得到一些澄清,以及更新回购协议最安全的方式,即使是复制粘贴,尽管我认为还有更好的方式


我仍然掌握着Git的窍门,所以非常感谢您的指导。谢谢您的时间。

尝试使用-f标志推送
git推送原始主机-f
尝试此git命令

git push origin master --force
或力不足-f

git push origin master -f
git获取原始主机
此命令将更新远程repo的本地副本,而不接触本地repo或工作目录。这样,您可以通过运行以下命令查看远程分支和本地分支之间的区别:

git差异源/主
然后,您可以根据需要运行以下操作之一:

#运行此命令以保留来自远程分支的任何更改
git重新基址源/主
git推送源主机
#运行此命令以覆盖远程分支上的更改
git push--强制原始主机

在修复之前,您是否将您的混乱推送到远程回购?或者只是在你的本地机器上?你在原始回购协议中使用git reset恢复了吗?谢谢@Ali,我没有推这个烂摊子。我的远程回购在几天内没有改变,但我的本地副本(从第一个克隆)已经修复了我今天所做的所有错误。现在我想把这些错误修复推到远程,但是我得到了上面的错误。谢谢你的回复@Mudassarhassan。我没有。我使用VS代码,并在“源代码控制”选项卡中将我的混乱恢复为与远程VS代码相匹配。这导致我的当前代码(来自第一个克隆)与远程版本完全匹配。然后我在本地进行了一系列错误修复,并尝试推送,现在我得到了那个错误。所以在现实中,我的本地人领先于远程人,但Git却不这么认为。