git安装之后,就可以使用git来管理你的项目了。
1. git仓库初始化
初始化一个git项目呢,使用git init命令,初始化之后,在当前目录下会出现一个名为.git的目录,所有git需要的数据和资源都存放在这个目录中。
当然,也可以从其它地方克隆一份git仓库,例如:
$git clone git://github.com/artprogramming/usb.git
该命令执行之后,将会在当前目录下创建一个usb的目录,其中包含一个.git的目录,并从仓库中拉出所有数据,取出最新版本的文件拷贝。
如果希望在克隆的时候,自己定义新建项目的名字,可以直接将名字跟在上面的命令后面,例如:
$git clone git://github.com/artprogramming/usb.git myusb
如果当前目录下有几个文件想要使用git来管理,需要使用git add命令来告诉git将这些文件纳入管理,同时使用git commit命令将这些文件提交到git仓库中,例如:
$git add *.c
$git add README
$git commit -m 'initial project version'
2. 检查文件状态
要确定当前文件处于哪种状态呢,使用git status命令,它会将修改未提交的和未纳入git管理的所有文件给例举出来。
3. 跟踪新文件
使用git add命令跟踪一个新的文件,再将这个命令之前,先了解一下git本地操作模式,如图所示:
git的存储区域分为三个部分,即当前的工作目录、暂存区和git仓库,使用git add命令呢只是将文件提交到暂存区域,并没有实际提交git仓库中,只有在使用git commit命令之后才将文件真正的提交到git仓库中,当然也可以直接提交到仓库中,使用git commit -a即可,如果仅仅是使用git commit命令,则只是将暂存区域中的文件提交到git仓库中。
4. 查看文件差异
git status命令功能有限,只是例举出了哪些文件做了修改,如果需要查看具体修改了什么,使用git diff命令,从前面可以知道git存储区域有三个地方,当前工作目录、暂存区和git仓库,如果仅仅只是用git diff命令,那么得到的是更新但未暂存的文件数据,也就是说git diff命令只是比较当前工作目录和暂存区的差异。如果使用git add命令将修改过后的文件提交到暂存区的话,那么使用git diff命令得到的空的,可以使用git diff --cached命令查看暂存区和git仓库的差异(git 1.6.1及以后的版本还可以使用git diff --staged命令,效果同git diff --cached命令是一样的)。
5. 提交更新
前面就说过,git add命令只是将文件提交到了暂存区域,如果要提交到仓库中,使用git commit命令,如果直接运行git commit命令,将会启动文本编辑器以便输入这次提交的说明,当然也可以在git commit命令后面跟上-m和提交说明。例如前面的git commit -m "initial project version"。
有时通过暂存区域显得有些麻烦,可以使用命令git commit -a,git会把所有已跟踪的文件暂存起来并一并提交。
6. 删除文件
删除文件使用git rm命令,要删除某个文件,首先需要删除对该文件的跟踪(确切的是说从暂存区域中移除),git rm命令就是完成这样的工作,并将文件从当前工作目录中移除,然后使用git commit命令提交,提交之后,该文件就不再纳入git管理了。
7. 重命名文件
重命名文件使用git mv命令,例如:
$git mv file_from file_to
git mv命令的执行相当于执行如下三条命令:
$mv README.txt README
$git rm README.txt
$git add README
// 2015.11.18 add
8. git revert命令
git revert命令用于恢复某次commit,后面跟上一个sha1值,那么这个命令同git reset命令有什么区别呢,git reset会将该点之后的都回退,而git revert只是回退当前点。