标签:
Linux上:
sudo apt-get install git-core
Windows上:
http://msysgit.github.io/下载安装包安装
首先应该配置一下你的身份,这样在提交代码的时候 Git 就可以知道是谁提交的了,命
令如下所示:
git config --global user.name "Tony"
git config --global user.email "tony@gmail.com"
配置完成后你还可以使用同样的命令来查看是否配置成功,只需要将最后的名字和邮箱
地址去掉即可
完成以上步骤之后就可以开始创建代码仓库啦,仓库(Repository)是用于保存版本管理所需信息的地方,所有本地提交的代码都会被提交到代码仓库中,如果有需要还可以再推送到远程仓库中。
尝试给自己曾经写过的一个项目创建代码仓库,先进入到项目的目录下面,然后在这个目录下面输入如下命令:
git init
很简单吧!只需要一行命令就可以完成创建代码仓库的操作
仓库创建完成后,会在该项目的根目录下生成一个隐藏的.git 文件夹,
这个文件夹就是用来记录本地所有的 Git 操作的,可以通过 ls -al 命令来查看一下
Administrator@QH-20141231RFQJ /D/hixin/HealthUnionMobile (master) $ ls -al total 23 drwxr-xr-x 1 Administ Administ 4096 Jun 1 11:09 . drwxr-xr-x 1 Administ Administ 12288 May 30 23:33 .. -rw-r--r-- 1 Administ Administ 1358 May 18 08:51 .classpath drwxr-xr-x 9 Administ Administ 4096 Jun 1 11:09 .git -rw-r--r-- 1 Administ Administ 853 May 17 23:54 .project drwxr-xr-x 3 Administ Administ 0 May 18 08:50 .settings -rw-r--r-- 1 Administ Administ 6869 May 18 17:57 AndroidManifest.xml drwxr-xr-x 2 Administ Administ 0 May 11 23:51 assets drwxr-xr-x 11 Administ Administ 4096 May 20 00:46 bin drwxr-xr-x 3 Administ Administ 0 May 18 21:25 gen drwxr-xr-x 13 Administ Administ 4096 May 18 08:50 libs -rw-r--r-- 1 Administ Administ 53 May 11 23:51 lint.xml -rw-r--r-- 1 Administ Administ 781 May 11 23:51 proguard-project.txt -rw-r--r-- 1 Administ Administ 640 May 19 23:10 project.properties drwxr-xr-x 19 Administ Administ 4096 May 18 18:34 res drwxr-xr-x 3 Administ Administ 0 May 18 08:50 src
如果你想要删除本地仓库,只需要删除这个文件夹就行了
代码仓库建立完之后就可以提交代码了,其实提交代码的方法也非常简单,只需要使用
add 和 commit 命令就可以了。add 是用于把想要提交的代码先添加进来,而 commit 则是真
正地去执行提交操作。比如我们想添加 AndroidManifest.xml 文件,就可以输入如下命令:
git add AndroidManifest.xml
这是添加单个文件的方法,那如果我们想添加某个目录呢?其实只需要在 add 后面加上
目录名就可以了。比如将整个 src 目录下的所有文件都进行添加,就可以输入如下命令:
git add src
可是这样一个个地添加感觉还是有些复杂,有没有什么办法可以一次性就把所有的文件
都添加好呢?当然可以,只需要在 add 的后面加上一个点,就表示添加所有的文件了,命令
如下所示:
git add .
现在该项目下所有的文件都已经添加好了,我们可以来提交一下了,
输入如下命令:
git commit -m "First commit."
注意在 commit 命令的后面我们一定要通过-m 参数来加上提交的描述信息,没有描述信
息的提交被认为是不合法的。这样所有的代码就已经成功提交了!
代码仓库现在已经是创建好了,接下来我们应该去提交项目中的代码。不
过在提交之前你也许应该思考一下,是不是所有的文件都需要加入到版本控制当中呢?
在第一章介绍 Android 项目结构的时候有提到过, bin 目录和 gen 目录下的文件都是会自
动生成的,我们不应该将这部分文件添加到版本控制当中,否则有可能会对文件的自动生成
造成影响,那么如何才能实现这样的效果呢?
Git 提供了一种可配性很强的机制来允许用户将指定的文件或目录排除在版本控制之
外,它会检查代码仓库的根目录下是否存在一个名为.gitignore 的文件,如果存在的话就去一
行行读取这个文件中的内容,并把每一行指定的文件或目录排除在版本控制之外。注
意.gitignore 中指定的文件或目录是可以使用“*”通配符的。
现在,我们在要提交项目的根目录下创建一个名为.gitignore 的文件,然后编辑这
个文件中的内容
Git过滤文件和文夹 第一步:添加".gitignore"文件 往项目根目录添加一个文件".gitignore"。这文件和".git"文件夹同级。 但是在windows下无法创建".gitignore"文件名,必须把文件名改成这样".gitignore.", 在文件名最后加一个英文句号就可以了。 第二步:设置过滤条件 bin/ 过滤所有bin文件夹 obj/ 过滤所有obj文件夹 ValorNAV_deploy/ 过滤所有ValorNAV_deploy文件夹 *.dll 过滤所有dll文件,这个最好不要使用dll,因为项目中像lib文件夹我们会放一些dll包。 第三步:把".gitignore"文件提交并且push到服务器 其它的协作成员可以通过pull获取这个文件,其它人的过滤规则保持一致了。 1.如果新建一个空的Git仓库。直接拉取就可以了。 2.如果是一个已经使用了Git仓库,如果需要应用规则,则需要通过命令把相应要过滤的目录 的缓存删除。 git rm --cached <文件名> 删除文件的缓存 git rm --cached -r <目录名> 删除目录下的所有文件的缓存 通过上面的命令把缓存删除后,commit后再push到服务器。 其它的团队成员可以直接pull,过滤功能就能正常使用了。
查看文件修改情况的方法非常简单,只需要使用 status 命令就可以了,在项目的根目录
下输入如下命令:
git status
然后 Git 会提示目前项目中没有任何可提交的文件,因为我们刚刚才提交过嘛
将代码稍加改动,然后重新输入 git status命令,这次结果如图
可以看到, Git 提醒我们 LoginActivity.java 这个文件已经发生了更改,那么如何才能看到
更改的内容呢?这就需要借助 diff 命令了,用法如下所示:
git diff
这样可以查看到所有文件的更改内容
如果你只想查看 MainActivity.java 这个文件的更
改内容,可以使用如下命令:
git diff src/com/example/health/MainActivity.java
命令的执行结果如图 7.10 所示。
其中,减号代表删除的部分,加号代表添加的部分。
有的时候我们代码可能会写得过于草率,以至于原本正常的功能,结果反倒被我们改出
了问题。遇到这种情况时也不用着急,因为只要代码还未提交,所有修改的内容都是可以撤
销的。
比如在前面我们修改了 MainActivity 里的代码,现在如果想要撤销这个修
改就可以使用 checkout 命令,用法如下所示:
git checkout src/com/example/health/MainActivity.java
执行了这个命令之后,我们对 MainActivity.java 这个文件所做的一切修改就应该都被撤
销了。重新运行 git status 命令检查一下,结果如图
可以看到,当前项目中只有一处发生修改啦,说明撤销操作确实是成功了。
不过这种撤销方式只适用于那些还没有执行过 add 命令的文件,如果某个文件已经被添
加过了,这种方式就无法撤销其更改的内容,我们来做个试验瞧一瞧
首先输入 git add .
git checkout src/com/example/health/LoginActivity.java
现在我们再执行一遍 checkout 命令,你会发现 MainActivity 仍然是处于添加状态,所修
改的内容无法撤销掉。
这种情况应该怎么办?难道我们还没法后悔了?当然不是,只不过对于已添加的文件我
们应该先对其取消添加,然后才可以撤回提交。取消添加使用的是 reset 命令,用法如下所示:
git reset HEAD src/com/example/health/LoginActivity.java
然后再运行一遍 git status 命令,你就会发现 MainActivity.java 这个文件重新变回了未添
加状态,此时就可以使用 checkout 命令来将修改的内容进行撤销了。
当提交记录非常多的时候,如果我们只想查看其中一条记录,可以在命令中指定该记录
的 id,并加上-1 参数表示我们只想看到一行记录,而如果想要查看这条提交记录具体修改了什么内容,可以在命令中加入- p 参数,命令如下:
git log 989b55655c83e148c1e670315d26175ff508bebf -l -p
分支是版本控制工具中比较高级且比较重要的一个概念,它主要的作用就是在现有代码
的基础上开辟一个分叉口,使得代码可以在主干线和分支线上同时进行开发,且相互之间不
会影响。
分支的英文名是 branch,如果想要查看当前的版本库当中有哪些分支,可以使用 git
branch –a 这个命令
由于目前项目中还没有创建过任何分支,因此只有一个 master 分支存在,
这也就是前面所说的主干线。接下来我们尝试去创建一个分支,命令如下:
git branch version1.0
标签:
原文地址:http://www.cnblogs.com/hixin/p/4544051.html