相关疑难解决方法(0)

如何正确强制推送Git?

我已经设置了一个远程非裸"主"仓库并将其克隆到我的电脑上.我做了一些本地更改,更新了我的本地存储库,并将更改推送回我的远程仓库.到目前为止,情况还不错.

现在,我不得不改变远程仓库中的东西.然后我在当地的回购中改变了一些东西.我意识到不需要改变远程仓库.所以我尝试git push从我的本地仓库到我的远程仓库,但我收到的错误如下:

为防止您丢失历史记录,拒绝非快进更新在再次推送之前合并远程更改.有关git push --help详细信息,请参阅"关于快进的注意事项"部分.

我以为那可能是一个

git push --force
Run Code Online (Sandbox Code Playgroud)

将强制我的本地副本将更改推送到远程副本并使其相同.它确实强制更新,但当我回到远程仓库并进行提交时,我注意到文件包含过时的更改(主远程仓库以前有过).

正如我在评论中提到的其中一个答案:

[我]尝试强制,但当回到主服务器保存更改时,我得到过时的暂存.因此,当我提交存储库时不一样.当我再次尝试使用git push时,我得到了同样的错误.

我该如何解决这个问题?

git push git-push git-non-bare-repository

1206
推荐指数
11
解决办法
118万
查看次数

如何备份本地Git存储库?

我在一个相对较小的项目上使用git,我发现压缩.git目录的内容可能是备份项目的好方法.但这有点奇怪,因为当我恢复时,我需要做的第一件事就是git reset --hard.

以这种方式备份git repo有什么问题吗?还有,有没有更好的方法(例如,便携式git格式或类似的?)?

git backup

151
推荐指数
7
解决办法
12万
查看次数

列出并删除没有分支的Git提交(悬空?)

我有一个Git存储库,其中有很多提交,没有特定的分支,我可以git show,但是当我尝试列出包含它们的分支时,它没有报告任何内容.

我认为这是悬挂的提交/树问题(由于-D分支),所以我修剪了回购,但之后我仍然看到相同的行为:

$ git fetch origin

$ git fsck --unreachable
$ git fsck
Run Code Online (Sandbox Code Playgroud)

没有输出,没有悬空(对吧?).但提交存在

$ git show 793db7f272ba4bbdd1e32f14410a52a412667042
commit 793db7f272ba4bbdd1e32f14410a52a412667042
Author: ...
Run Code Online (Sandbox Code Playgroud)

它不能通过任何分支到达

$ git branch --contains 793db7f272ba4bbdd1e32f14410a52a412667042
Run Code Online (Sandbox Code Playgroud)

没有输出.

这个提交的状态究竟是什么?如何列出处于类似状态的所有提交?如何删除那些提交?

git branch git-dangling

132
推荐指数
7
解决办法
6万
查看次数