4

我有几个备份目录,我想将它们放入 git。

目录是:

web_backup_2012-03-07
web_backup_2012-06-03
web_backup_2012-06-21
web_backup_2012-06-25
web_backup_2012-07-02
web_backup_2012-07-15
web_backup_2012-07-21

现在我想把它们放在 git 上。最好的方法是什么?(每个备份大约 1.1 G,20k 个文件。)

这是我认为应该做的:

• cd 到最早的备份目录。

git init
git add .
git commit . -m"initial commit"

然后将 .git 目录移动到第二个目录中,然后执行

git add .
git commit . -m"commit. ‹date here›"

重复上述。

然后,在最后一个目录中,我完成了。我可以删除所有以前的备份目录。(然后我可以将 .git 目录移动到我当前工作的 web 目录中并重复。这样我的带有历史记录的 web 目录现在都在 git 中。)

根据我的测试,每一步都需要 10 分钟。

我是 git 新手。另外,是否有人可以告诉我是否/如何添加日期标签(如果它对此有好处。)

有没有更好的办法?

4

2 回答 2

4

我建议不要git add .总是添加文件,而是git add -A“查找新文件以及暂存修改的内容并删除不再在工作树中的文件”(来自git docs)。

我会编写一个看起来像这样的脚本:

#!/bin/bash
git init
GIT_DIR=$(pwd)
for dir in $(find . -maxdepth 1 -name web_backup_\* | sort); do
  pushd $dir
  git add -A
  git commit -m "Backup for $dir."
  git tag $dir
  popd
done
于 2012-10-02T20:40:31.810 回答
1

如果要在一个目录中创建包含所有备份的存储库,请执行以下操作:

1. cd to parent directory and run git init
2. run git add *
3. run git commit -a -m "initial commit" 
4. run git push -u <repository> master 

要使用使用 bitbucket 作为提供程序的完整示例,您可以执行以下操作:

git init
git remote add origin ssh://git@bitbucket.org/username/repositoryname.git
git add *
git commit -a -m "Initial commit" 
git push -u origin master 

然后,当您想将更改推送到 repo 时,您更改到父目录并执行

 git commit -a -m "commit message"
 git push -u origin master

此外,如果您要查看是否有任何更改,您可以使用:git status从父存储库目录。

要查看更改内容,请gitk从父目录尝试。

于 2012-10-02T20:35:59.687 回答