我正在编写一个工具来将我的所有存储库从Bitbucket(支持Git和Mercurial)备份到我的本地计算机。
它已经适用于Mercurial,我这样做:
bare
Git存储库相同)现在我正试图用Git做同样的事。
我already found out我不能直接pull
到裸存储库,我应该使用fetch
代替。
所以我试了一下:
C:\test>git fetch https://github.com/SamSaffron/dapper-dot-net.git
remote: Counting objects: 1255, done.
remote: Compressing objects: 100% (1178/1178), done.
remote: Total 1255 (delta 593), reused 717 (delta 56)
Receiving objects: 100% (1255/1255), 13.66 MiB | 706 KiB/s, done.
Resolving deltas: 100% (593/593), done.
From https://github.com/SamSaffron/dapper-dot-net
* branch HEAD -> FETCH_HEAD
显然Git 做了获取内容,但之后本地存储库为空。
(git log
说fatal: bad default revision 'HEAD'
)
我做错了什么?
声明:
我只有非常非常基本的Git知识(我通常使用Mercurial)
如果重要的话,我正在使用Windows。
答案 0 :(得分:15)
尝试
git fetch https://github.com/SamSaffron/dapper-dot-net.git master:master
答案 1 :(得分:5)
要将远程存储库备份到裸存储库中,请先定期配置
git config remote.origin.url https://github.com/SamSaffron/dapper-dot-net.git
git config remote.origin.fetch "+*:*"
然后只需运行
git fetch --prune
备份。
"
),以保护星号(*
)不被shell解释。--prune
也用于删除现在不存在的分支。 答案 2 :(得分:3)
我想如果你真的想备份的话。您可以尝试$ git clone --mirror XXXX
命令。它几乎可以从存储库获得所有东西。希望它有所帮助。
答案 3 :(得分:2)
$ git fetch https://github.com/SamSaffron/dapper-dot-net.git +refs/heads/*:refs/heads/* --prune