备份使用git的项目

Roo*_*ook 9 git

在快速重新安装之前,我正在刻录DVD上的东西.从来没有用git作为最近的用户.所以我只是和你们一起检查.如果我理解正确的话,我只需要备份我的项目目录project_name(里面有.git)和它一起查看隐藏文件,当我将它复制到"新"机器上,并再次安装git时,我恢复如下没啥事儿 ?正确吗?

Von*_*onC 12

如果你只想备份项目文件(没有历史记录),你可以使用git archive(这样,我不必"监视隐藏文件")

该脚本git-archive-all.sh实际上将归档当前路径中的所有git存储库和子模块.

用于创建包含其他子模块的git超级项目的单个tarfile.


正如查尔斯贝利在评论中正确提到的那样,git bundle更适合保存历史.(git bundle20072月推出).

请参阅使用git bundle备份git存储库

git bundle被设计为允许在存储库之间没有直接连接时传输git提交(即:离线),但由于提交的数量和多个分支,使用补丁不是一种选择.
A git bundle只是一个文件,可以非常容易地创建并再次导入,因为它可以被视为另一个远程.一个简单的例子:

jojo@dualtron:~/devel$ git bundle create ~/devel.bdl master test 
Run Code Online (Sandbox Code Playgroud)

并且在~/devel.bdl包含我的主分支和测试分支的情况下保存包.
如果我现在在存储库BI只是使用jojo@dualtron:~$ git ls-remote devel.bdl它显示存储在包中的分支.
要使用捆绑包我简单地将它视为远程,使用git fetch(例如)

jojo@dualtron:~/git/repoB$ git fetch ~/devel.bdl refs/heads/\*:refs/remotes/bundle/\*
Run Code Online (Sandbox Code Playgroud)


Cha*_* Ma 9

是的.那就对了.

  • 有史以来最短,最放心的答案:) (4认同)
  • 我试着说"是的".但它不会让我发布小于15个字符的答案:PA git存储库只是一个文件夹(和它的子文件夹),其中.git目录用git init初始化.你可以在任何地方移动这个文件夹,它可以使用git. (4认同)