fbfsber00 2012-05-16
Git是一个可扩展的分布式版本控制系统,它包含丰富的命令集,对内部系统提供了高级操作和完全访问。
1、使用Git管理个人文档
Git善于保存文本文档,使用Git对现有文档进行版本控制,首先要基于现有文档建立项目仓库。假设本文档位于~/evawang/workspace目录下,下面以Bash变量$WORK代替该目录,首先初始化Git仓库:
echo $WORK WORK=~/evawang/workspace cd $WORK git init
Git会作出以下回应:
InitializedemptyGitrespositoryin@WORK/.git/
上述操作的结果是在$WORK目录下创建了一个.git隐藏目录,它就是所谓的Git仓库,不过它现在还是空的,另外$WORK目录也不再是普通的文档目录了,它称为工作树。
Git向仓库中添加文档时,需要经过一番处理,生成Git仓库所能接受的数据格式,该过程称为“takeasnapshot”,可采用下面的命令实现:
cd $WORK git add .
生成的快照被存放到一个临时的存储区域中,Git称该区域为索引。使用gitcommit命令可以将索引提交到仓库中,该过程称为提交,每一次的提交都意味着版本的更新。
git commit
执行gitcommit操作,Git会自动调用系统默认的文本编辑器,要求你输入版本更新说明并保存。对于简单的版本更新信息,可以使用gitcommit的"-m"选项,如下:
gitcommit-m"版本更新信息"
建立Git仓库的一些细节
first:在使用Git之前,需要对Git来个自我介绍,因为它要求队员在提交数据时承担一定的责任!向Git自我介绍,使用一下命令:
git config --global user.name "your name" git config --global usr.email EmailAdress
second:在生成快照时,工作树中有一些文档是你不希望接受Git管理的,譬如编译时生成的中间文件。为解决此类问题,Git提供了文档忽略机制,可以将工作树中你希望接受Git管理的文档信息写到同一个目录下的.gitignore文件中。例如工作树中的middle目录不需要Git管理,需要如下操作即可:
cd $WORK echo "middle" > .gitignore git add .
Git仓库就是那个.git目录,存放的是我们所提交的文档索引内容,Git可以根据文档索引内容对其所管理的文档心境内容追踪,从而实现文档版本控制。
cp -R $WORK/.git /tmp/m2doc.git cd /tmp git clone m2doc.git m2doc-copy //使用git-clone命令从m2doc.git中生成m2doc-copy目录
这就意味着只要我们拥有仓库,就可以生成工作树,该工作树又包括一个仓库,即:m2doc-copy/.git
ex:将修改了的file1.txtfile2.txt文件添加到索引中
git add file1.txt file2.txt
执行git-commit操作将索引添加到仓库中,如果你忘记了对工作树中的哪些文档进行更新,gitadd命令能够判断出当前目录及子目录下用户所添加的新的文档,git-commit命令的-a选项可将所有被修改的文档或删除的文档的当前状态提交到仓库中。如果只是修改或者删除已被Git管理的文档,就没有必要使用git-add命令了。
查看历史版本:
git log //查看使用git-commit向仓库提交新版本时所属的版本更新信息 git log --stat --summary //查看每一次版本大致变动情况
如果我们将项目的版本号作为git-show命令的参数,可以查看该次项目版本的更新细节
git show editionNum
除了使用完整的版本号查看版本更新信息,还可以使用以下方式:
git show part_of_editionNum //一般只使用版本号的前几个字符进行查询 git show HEAD //显示当前分支的最新版本的更新信息 git show HEAD^ //查看HEAD的父版本的更新信息
你也可以对项目版本号进行自定义,然后就利用自定义的版本号查看对应的版本更新信息
:
git tag v0.1 part_of_editionNum //制造了一个tag对象,在进行项目对外发布时比较有用 git show
撤销与恢复
git-reset命令即是将当前版本定位到之前提交的任何一个版本。
git-reset命令有三个选项:--mixed--soft--hard,一般只使用前两个选项。
--mixed是git-reset的默认选项,作用:重置索引内容,将其定位到指定的项目版本,而不改变你的工作树的内容,只是提示你有哪些文件还未更新。
--soft不触动索引的位置,也不改变工作树的内容,但会要求他们处于一个良好的次序之内,该选项会保留你在工作树中所有更新并使之处于提交状态。
欲查看git-reset命令对工作树的影响,可使用git-status命令。
使用Git帮助文档的方法,如果想查看gitadd命令,mangit-add就好了!
先总结这么多吧!