So I want to be able to back up a git repository that may have several branches onto an external hard drive and then be at a later time be able to copy it back onto my local machine and work with it as usual? I have tried simply copying the working directory folder containing the .git directory and it worked. However, I was wondering if this was the best way or if it had pitfalls later.
相关问题
- php PDO::FETCH_ASSOC doesnt detect select after ba
- Why does recursive submodule update from github fa
- Extended message for commit via Visual Studio Code
- Emacs shell: save commit message
- Can I organize Git submodules in a flat hierarchy?
相关文章
- 请教Git如何克隆本地库?
- How do you backup an apache Jackrabbit repository
- GitHub:Enterprise post-receive hook
- Git Clone Fails: Server Certificate Verification F
- SSIS solution on GIT?
- Is there a version control system abstraction for
- ssh: Could not resolve hostname git: Name or servi
- Cannot commit changes with gitextensions
Copying the whole thing or using a sync tool is fine. The repo is fully contained and portable.
Copying the entire working copy using regular file system copy commands works fine. You can also zip/tar the backup.
If you are worried about disk space, you can also look at "git bundle", which could produce smaller files.
You can also get incremental backups by just starting a new repo on the external disk (git clone) and then pull the changes every time (git pull). There is not much difference between a backup and a working copy in a distributed system like git.
Summarizing,
git bundle
orgit archive
You can also,
which you can dump into a single file that you can import later from.
There is no pitfall here, git is a fully distributed SCM. Copying a working copy with the
.git
directory is sufficient backup.That's about the only way to do it, short of cloning the repository onto the external disk. But either approach is approximately equivalent, except that copying your clone will preserve any repo-specific config settings.
If you don't have any changes to back up in your work tree, you can use
git clone --mirror
to create a bare clone with all refs (branches, tags, absolutely everything) copied verbatim. You can then usegit push --mirror
to keep it up to date incrementally. This is what it's designed for.Copying the entire repo, including the work tree, works as well, but it's a bit of a pain to do incrementally, and obviously takes up more space.