我有几个备用目录,我想将它们放入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历史记录现在全部都是git。)
从我的测试开始,每一步都需要10分钟。
我是git的新手。另外,如果有人能告诉我是否/如何添加日期标记(如果它对此有好处的话。)
有更好的方法吗?
答案 0 :(得分: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
答案 1 :(得分: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
。