restoring git repository from bundle backup

后端 未结 3 1780
情歌与酒
情歌与酒 2021-01-31 08:32

i created backups of my git repository like in How to backup a local Git repository? proposed with

git bundle create /tmp/foo-all --all

I can s

相关标签:
3条回答
  • 2021-01-31 09:05

    Short answer:

    $ git bundle verify $somewhere/foo.bundle
    $ git clone $somewhere/foo.bundle
    Cloning into 'foo'...
    Receiving objects: 100% (10133/10133), 82.03 MiB | 74.25 MiB/s, done.
    Resolving deltas: 100% (5436/5436), done.
    $ cd foo
    $ git status
    ...
    

    Lazy Badger said this, but it's in the last paragraph. :)

    0 讨论(0)
  • 2021-01-31 09:21

    I newer version of git is enough to do:

    git clone bundle.file
    

    the whole commands:

    mkdir ~/git
    cd ~/git
    git clone /path/to/bundle.file
    

    It will restore completely Your's git bare repository content (which will compile as it is normal source). You don't need any other file. The bundle file is enough.

    It is wise to always verify You bundle file before unbundle as follow:

    git bundle verify /path/to/bundle.file 
    
    0 讨论(0)
  • 2021-01-31 09:25

    Bundle contain not files, but deltas, you need the base in order to recreate the file content. You have to clone first, unbundle later. Init instead of clone allowed only in case, where bundle requires 0 refs

    Don't ignore git bundle verify before unbundling

    git-bundle(1) - Linux man page

    Used to check that a bundle file is valid and will apply cleanly to the current repository. This includes checks on the bundle format itself as well as checking that the prerequisite commits exist and are fully linked in the current repository. git bundle prints a list of missing commits, if any, and exits with a non-zero status.

    If you are creating the repository, then you can clone from the bundle as if it were a remote repository instead of creating an empty repository and then pulling or fetching objects from the bundle

    0 讨论(0)
提交回复
热议问题