学习Git:Remote拒绝我的推送,尽管配置正确?

学习Git:Remote拒绝我的推送,尽管配置正确?,git,merge-conflict-resolution,Git,Merge Conflict Resolution,我只是在学Git,请耐心点。我在本地编写了一些代码,现在我想将其推送到我的远程服务器(origin)。我得到这个错误: !![已拒绝]主控->主控(先取) 错误:无法将某些引用推送到'ssh://website@host.website.com:2200/home/user's 更新被拒绝,因为远程包含您在本地没有的工作。这通常是由另一个存储库推送引起的 遥控器是v2.4.1,具有以下设置(git config的输出--list): 最后一个不是意味着我应该被允许在不引发错误的情况下覆盖约束吗

我只是在学Git,请耐心点。我在本地编写了一些代码,现在我想将其推送到我的远程服务器(
origin
)。我得到这个错误:

!![已拒绝]主控->主控(先取)

错误:无法将某些引用推送到'ssh://website@host.website.com:2200/home/user's

更新被拒绝,因为远程包含您在本地没有的工作。这通常是由另一个存储库推送引起的

遥控器是
v2.4.1
,具有以下设置(git config的输出--list):

最后一个不是意味着我应该被允许在不引发错误的情况下覆盖约束吗

我基本上是在寻找最简单的设置:我不在服务器上开发,我是唯一一个可以访问它的人,所以我希望开发机器推动的任何东西都能获胜

我看到了如何使远程存储库裸露,但说明是删除文件夹中的所有内容,但
.git
。这对我不起作用,因为其中有些文件不是我项目的一部分,但我不想移动

如果我登录到远程存储库并执行
git status

未跟踪的文件:(使用“git add…”包含在将提交的内容中)

…(文件的长列表)

提交时未添加任何内容,但存在未跟踪的文件(使用“git add”跟踪)

附录

我只是:

$ git push --force origin master
stdin: is not a tty
Counting objects: 3801, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (3674/3674), done.
Writing objects: 100% (3801/3801), 6.95 MiB | 37.00 KiB/s, done.
Total 3801 (delta 2450), reused 0 (delta 0)
error: Untracked working tree file 'cacert.pem' would be overwritten by merge.
To ssh://website@host.website.com:2200/home/user
 ! [remote rejected] master -> master (Could not update working tree to new HEAD)
error: failed to push some refs to 'ssh://website@host.website.com:2200/home/'
我想我可以删除服务器上该文件的副本,然后再试一次吗?这两个文件具有相同的内容(这是一个复制/粘贴作业)

我不希望本地文件从远程文件导入任何更改我希望本地文件覆盖远程文件

问题是,如果您不想git-pull,那么在出现该错误消息时,您需要:

git push --force
但这不仅会覆盖文件,还会通过您的提交覆盖远程端最近的提交历史,因此请确保这确实是您想要的

遥控器具有以下设置:receive.denycurrentbranch=updateInstead。这不意味着我的推送应该只更新远程主分支吗

它允许推送到非裸回购(关于“推送部署”),但错误消息与此无关。
这是关于本地没有的远程端的提交


通常,您
拉--rebase
,以在更新的获取的远程分支上重播您的更改。然后你推。

omg,我开始运行你的第一个命令——正如我们所说的那样——然后意识到你一直在进行一次又一次的编辑。LolReen
--force
虽然比我原来的命令要忙得多,但还是不起作用。我已经用结果更新了OP。@甲壳虫汁没什么大不了的:远程repo在reflog中仍然有它以前的提交历史:没有丢失任何内容。@甲壳虫汁至于您的错误消息,如果可能的话,您应该推到一个干净的工作树(没有任何修改或未跟踪的文件)。如果不可能,请至少删除未跟踪的文件,这些文件将被推送覆盖。很抱歉,您还不熟悉Git的行话。当你说“至少删除未跟踪的文件”时,你的意思是
git clean-f
git push --force