如何 git 推送到对您不再拥有且不想保留的文件进行更改的存储库

How to git push to a repo that has changes to files that you do not have anymore and dont want to keep

我有一个项目正在我的笔记本电脑和家用 PC 上进行,我之前将一些东西从笔记本电脑推送到我的 git 存储库,这是一个小改动。现在我已经从我的家用 PC 上做了很多更改,我正试图将它们推送到回购协议中。

但是它说我必须先拉,因为我在本地没有的回购中有变化。

问题是这些文件没有我在家用 PC 上所做的重大更改,我不想因为我从存储库中删除了早期版本而丢失本地内容。

如何在不拉取的情况下将我的文件强制放到我的存储库中?

可以强制推送,

git push origin master --force

或者使用短标志,

git push origin master -f
git pull --rebase origin branchName

这将首先将更改拉到您的本地存储库(您的 PC),然后在 it.This 之上应用您的本地更改,这样您就不会丢失您在本地所做的更改。在此之后你可以做一个

git push origin branchName

这将更新您的远程仓库。

拉动时不会丢失本地内容;您将其他人的更改(在本例中是您自己从另一台 PC 所做的更改)与您自己的更改合并。

您可以推送到不同的分支并删除具有其他更改的分支。

我认为最好的方法是只获取更改(拉取而不合并),然后自己整理差异。如果你有像 SourceTree 这样的图形化 git 客户端和像 KDiff3 这样的三向合并工具,那肯定会有很大帮助。