正在构思这篇新的文章,介绍如何在抛开服务器、帐户、SSH、读写权限等等干扰,在本地相对安全的实现一个干净清洁的 Git 使用环境。
  先简单记录一下实际过程,有时间再进行细节的补充。
  1、安装 Git
  具体步骤请参考我的另外一篇文章:《从 Emacs 到 GitHub》

  2、生成本地一个纯净的 Git 仓库
  因为本文介绍的 Git 使用环境是抛开了一切分布式服务器环境,单纯本地使用,为了尽可能避免仓库损坏带来不可挽回的损失,也为了达到相对安全的使用环境,我在实例环境中是这样进行描述的:
  Git 的共享仓库,都放在使用 TrueCrypt 加密后的虚拟分区中:

1
/Volumes/"TrueCrypt Volume"/Git

  而 TrueCrypt 的虚拟磁盘镜像文件存储在移动硬盘上。
  当然,如果没有加密需要,可以将共享仓库直接放在移动硬盘中,比如:

1
/mnt/projects/Git

  实例中,当前项目为 Diary,存放在下边位置:

1
~/Projects/Diary

  Diary 项目中仅有一个文件:README
  介绍了本文实例中的规则之后,我们开始生成纯净 Git 仓库的具体步骤:
  首先进入 Diary 项目目录,将该目录初始化为 Git 仓库,并将该项目目录中所有文件加入 Git 监控(其实就 README 一个文件),然后进行第一次提交操作:

1
2
3
4
$ cd ~/Projects/Diary
$ git init
$ git add *
$ git commit -m "The first commit of Project: Diary"

  这样,Diary 项目已经是一个带有 Git 版本控制的目录了,并且该仓库已经进行了第一次成功的提交。
  接下来,利用这个已经变成带有 Git 版本控制功能的 Diary 项目目录,生成一个纯净的不带任何项目文件,只有 .git 目录的 Git 仓库:

1
2
$ cd ~/Projects
$ git clone --bare Diary Diary.git

  然后,将该纯净仓库复制到我们的加密虚拟磁盘中:

1
2
$ mkdir /Volumes/"TrueCrypt Volumes"/Git
$ cp ~/Projects/Diary.git /Volumes/"TrueCrypt Volume"/Git/

  这样,我们 Diary 项目的原始纯净仓库,就已经被安全的保护在了 TrueCrypt 虚拟磁盘中的 Git 目录中了。
  接下来,也是最后一步,删掉原来的 Diary 项目,重新从纯净仓库中 clone 出新的副本:

1
2
3
$ cd ~/Projects
$ rm -f -r Diary
$ git clone file:///Volumes/ "TrueCrypt Volume"/Git/Diary.git

  大功告成,目前的项目状态就是:
  当前工作副本是 ~/Projects/Diary,原始仓库是 /Volumes/”TrueCrypt Volume”/Git/,当你愉快的工作了一个星期,进行了若干次 commit 提交操作,到了周末需要备份项目的时候(虽然一个星期备份一次是很不好的习惯,最好一天一次),只需要挂载上 TrueCrypt 分区,然后:

1
2
3
$ cd ~/Projects/Diary
$ git commit -m "Last commit and then push"
$ git push

  你一周的辛苦工作,就已经被推送(push)到 TrueCrypt 分区中位于 Git/Diary.git 的原始仓库中去了。
  当然,上边删除 Diary 原始目录并重新 clone,仅仅是为了方便快捷,和作为说明来用,另外一个可能会因为 Diary 中文件被更改而被 Git 拒绝推送的操作是:

1
2
3
4
5
6
$ cd ~/Projects/Diary
$ git remote add origin file:///Volumes/ "TrueCrypt Volume"/Git/Diary.git
$ git commit -m "Last commit and then push"
$ git push origin master
或者
$ git push

 

转自 http://blog.williamyao.com/archives/232

Written on July 21st, 2010 , Ironware Tags: emacs , git , mac , truecrypt

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐