Git学习总结1

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就好了!

先总结这么多吧!

相关推荐