从Git Bare存储库中提取没有推送提交

时间:2012-05-25 18:56:03

标签: git repository push git-bare

我有一个我一直用于备份的裸git存储库。每次我提交本地副本时,我都会将其推送到裸存储库。 Git经历并推送对象没有任何错误。今天我尝试通过将裸存储库克隆到正常的存储库来仔细检查备份是否正常工作。当我做克隆时,文件就像我做初始裸克隆时一样,没有任何新的推送对象。

我已经看了一下裸仓库中的对象目录,并且在这段时间内添加或更新了新文件。我已经尝试从裸仓库中提取到新的克隆,但它说一切都是最新的。我还在裸仓库上做了一个git日志,只显示了我做原始克隆的日期提交。

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

更新:我想我可能已经弄清楚了 - 当我做原始的裸克隆时,我看起来像是在远离大师的分支上。我只是做了另一个裸克隆,而主人被检查出来,似乎正在工作。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

(正如您所了解的那样)这是一个分支问题。默认情况下,git clone检出主分支。因此,如果您已经在另一个分支上本地提交并推送到遥控器上的同一分支,那么您将在遥控器的主控器上没有任何内容。选项包括:

git clone -b <your branch> <repository>

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

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

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