3

我有一个用于备份的裸 git 存储库。每次我提交本地副本时,我都会将其推送到裸存储库。Git 通过并推送对象而没有任何错误。今天,我尝试通过将裸存储库克隆到普通存储库来仔细检查备份是否正常工作。当我进行克隆时,文件与我最初的裸克隆时完全相同,没有任何新推送的对象。

我查看了裸仓库中的 objects 目录,并且在这段时间内添加或更新了新文件。我试过从裸仓库拉到新的克隆,但它说一切都是最新的。我还在裸仓库上做了一个 git log,它只显示了截至我进行原始克隆的日期的提交。

我究竟做错了什么?我应该在推送中使用另一个标志吗?谢谢。

更新:我想我可能已经弄明白了——当我做原始的裸克隆时,看起来我在 master 之外的一个分支上。我刚刚在 master 签出时做了另一个裸克隆,它似乎正在工作。

4

2 回答 2

1

(正如您所了解的)这是一个分支问题。默认情况下git clone签出 master 分支。因此,如果您一直在另一个分支上本地提交并推送到远程上的同一个分支,那么您在远程的主控上将一无所有。选项是:

git clone -b <your branch> <repository>

然后你会确认<your branch>有你所有的工作。或者,在您的本地存储库中,

git checkout master
git merge <your branch>
git push <remote> master

这将是一个简单的合并(因为 master 是空的)并且会将所有内容推送到您期望的遥控器的 master 上。

于 2012-05-25T20:51:25.473 回答
1

尝试git add - git commit - git pull - git push

于 2012-05-25T18:57:46.337 回答