Git代码状态转换图
代码在本地,已经被Git库跟踪,但还没有加入到本地库代码在本地库中,代码可以和服务器同步代码在本地,还没有被Git库跟踪的状态addindex/staginggit commit本地库/stageduntrack/unstage修改代码修改代码新增代码Pull代码已经在服务器中push服务器
其中:未被Git跟踪的状态为unstage状态
已经被Git跟踪的状态为stage状态,因此包括staging状态和staged状态
一基本应用
1.安装
git的安装除了git core这个东西以外,我们还需要安装git gui和gitk,这些东西后面会方便我们的工作。
ubuntu下:直接采用新立德安装git。如果使用apt-get,可能会遗漏一些库文件,这里推荐大家将git的一些GUI的工具也安装一下,这样可以更直观的了解我们的版本发展情况。 windows下:也有相应的安装文件,http://code.google.com/p/msysgit/downloads/list在这个目录下可以下载到,一般推荐安装这个list里面的第一。
git有一些全局的设置和变量,我们可以通过git config -l去查看这些参数,git在提交修改的时候会记录提交者的姓名和email,这样便于代码的整体管理,安装后我们需要设置一下,我们的一些相关参数,具体设置的命令可以用git config --global user.name "XXXX"去设置全局的作者名和git config --global user.email "XXX"去设置全局的email地址。设置后,我们在查看每次的修改时,都会显示出这次修改掉作者是谁以及他的mail地址。
后面的命令使用,我们都是基于home目录下的~/gittest进行的,这个目录下面主要有三个文件:1.txt,2.txt,.gitignore这三个文件组成。想了解具体git命令的使用和说明,我们可以使用git XXX --help命令去显示相应命令的说明文档。
2.建立代码库
使用命令:git init
在当前目录中运行以完成初始化,随后可以使用git status去查看当前代码库的状态。这个时候,我们可以看到,我们在自己工程中的,1.txt和.gitignore这二个文件,提示我们他们是untrack的。 2.txt,文件由于我们在.gitignore中添加了它,所以这个文件将会被git ignore掉,这样方便我们的工作,因为我们在工作中,可能会有很多的*.tmp文件已经*.obj这些零时的,我们不关心的文件,所以我们通过.gitignore这个文件去简化我们需要关注的文件.gitignore这个文件里面的文件只要写相对路径就可以,每一行代表一个需要忽视的文
件,文件类型或者是目录。
3.管理改动
a.查看当前状态
使用命令:git status
这个命令可以查看当前的状态:
untrack files是指尚未被git所管理的文件;changed but not updated是指文件被git管理,并且发生了改变,但改动还没被git管理;这两种状态,都可以看成是改动还没被git管理的状态,我们这里称非stage状态。
changes to be commited是指进入stage状态的文件,stage是commit和未管理之间的一个状态,也有别名叫index状态,也就是git已经管理了这些改动,但是还没完成提交。 .gitignore中的文件,不会出现在以上三个状态中。
b.向stage添加文件 使用命令:git add
git add [path]会把对应目录或文件,添加到stage状态
git add . 会把当前所有的untrack files和changed but not updated添加到stage状态
c.从stage移除文件 使用命令: