您的位置:首页 > 其它

学习版本控制工具 git的基本使用

2016-09-12 19:29 531 查看
阅读时如有疑问和错误欢迎评论提出或者加我企鹅1262135886 ,谢谢支持

**首先进入准备阶段**


对于刚玩git的同行来说可能此时还不会下载和安装,这里笔者附一个教程地址: http://jingyan.baidu.com/article/e5c39bf5ab6af739d7603300.html

下载完git以后首先恭喜你已经离使用git不远了

接下来我们将打开如下网站 https://github.com/

这里我们来简单介绍一下这个网站:

该网站是一个代码托管的网站,我们在git上提交的代码将会托管在此网站上,熟悉了git之后我们将可以在此网站上下载别人的开源代码供自己学习并使用

所以我们还得进入此网站注册账号

可能这时又有好多读者不会注册,没关系这里笔者又附上注册登录教程地址:http://blog.csdn.net/NEET007/article/details/51510026

*具体使用阶段:*


准备工作做好以后我们将进入操作时间:

如果git已经安装成功的读者, 首先打开开始,可以找到 git bash,点击打开。显示如下:



看到这一步恭喜您,已经距成功不远了

最后我们进入具体的命令行学习阶段

这里将分为五大模块重点介绍:

一、提交步骤:

这里又分为6小步

1.输入项目的盘符,再按回车 例如:cd d:



2.输入项目准确路径的地址,再按回车

例如:cd bow\workspace\listView分页加载(笔者用的是eclipse里面的项目)



注意这里的斜杠是反斜杠,不是顺的


3.初始化项目 git init ,产生.git文件





4.忽略bin &gen文件

直接在项目的根目录下创建一个.gitignore的文件

忽略文件的方法:

bin和gen下的文件都是自动生成的,我们不应该将这部分文件添加到版本控制当中,否则有可能会对文件的自动生成造成影响,那么如何才能实现这样的效果呢?

Git提供了一种可配性很强的机制来允许用户将指定的问价或目录排除在版本控制之外,它会检查代码仓库的根目录下是否存在一个名为.gitignore的文件,如果存在的话就去一行行读取这个文件中的内容,并把每一行指定的文件或目录排除在版本控制之外,注意:.gitignore中指定的文件或目录是可以使用”*”通配符的。



5.添加项目 git add .

.表示添加项目中的所有文件



6.提交项目 git commit -m “First commit.”

注意:在commit命令的后面我们一定要通过-m参数来加上提交的描述信息,没有描述信息的提交被认为是不合法的。



以上6步就是第一大模块,是不是很简单

二、修改步骤:

当我们在进行第一次代码的提交之后,我们如果要对项目维护,比较理想的情况是每当完成了一小块功能,就执行一次提交,但是当某个功能牵扯到的代码比较多的时候,有可能写到后面的时候我们就已经忘记前面修改了什么东西了,这个时候可以执行以下命令

1.查看修改代码情况:git status

没有修改显示以下信息:



然后笔者打开eclipse修改一下项目:



这里我将定义的变量pager由1变成了2

然后再在git bash上重新执行以上命令 git status



此时再次输入命令后只要你是个细心的人就会发现产生的结果是不一样的

下面有一段红色的字体

modified(中文意思改进的、修改的):

src/com/example/listviewpager/MainActivity.java

这是表示修改的代码的文件的绝对路径

2.查看代码具体位置及内容:
git diff src/com/example/listviewpager/MainActivity.java




图片中可以看到将我刚才修改前和修改后的代码显示在其中

3.有时候想取消修改

如果以上是修改后未提交,下面演示取消未提交的修改

3.1这个撤销只适用于没有执行过add命令的文件

git checkout src/com/example/listviewpager/MainActivity.java

执行完这个命令之后,eclipse会出现以下对话框



点击yes之后pager=2变会自动变为1

重新运行 git status命令检查以下,

结果如下说明撤销成功:

3.2执行过add命令的文件的撤销

为了演示效果我又将pager=1改成了2

3.2.1首先取消添加:

git reset HEAD src/com/example/listviewpager/MainActivity.java



3.2.2:git reset –hard





点击yes之后pager=2又变会自动变为1

4.在项目开发了好几个月以后,我们可能执行了上百次的提交操作了,这个时候我们可以使用 git log 查看提交记录



其中图片commit 后面一串表示Id

当提交记录非常多的时候,如果我们只想查看其中一条记录可以在命令中指定该记录的id,并加上-1参数表示我们只想看到一行记录,如下所示:


git log 6863d2376635d04234cf52151a57c55878c7ca2b -1



而如果想要查看这条记录具体修改了什么内容,可以在命令中加入-p参数,命令如下:


git log 6863d2376635d04234cf52151a57c55878c7ca2b -1 -p



三、分支

分支:分支是版本控制工具中比较高级且比较重要的一个概念,它主要的的作用就是在现有的代码的基础上开辟一个分叉口,使得代码可以在主干线和分支线上同时进行开发,且相互之间不会影响。

为什么要用分支?

例如:公司开发一个软件,首先是1.0版本已经完成了,现在老板提出了新需求,要求我们升级到1.1,这时候我们会去1.0代码版本的基础上去开发新需求,可是这时候有客户在用1.0版本的时候发现了几个BUG,这个时候老板要我们解决并重新发布1.0,可是我们已经在1.0的代码中开发新需求,代码已经被自己更改了,这个时候我们就可以在1.0版本的时候建立一个分支,然后在主干线上继续开发1.1版本的功能,当1.0版本上发现任何bug的时候,就在分支线上进行修改,然后发布新的1.0版本,并记得把代码合并到主干线上,这样的话,不仅可以轻松解决1.0版本存在的bug而且保证了主干线上的代码也已经修复了这些BUG,当1.1版本发布的时候就不会有1.0那时候的bug了

分支的用法:

1,查看分支:git branch -a



例如:* master 当前只有master一个分支,也就是主干线

,2, 创建一个分支:git branch version1.0

再次进行查看分支 :git branch -a



例如:* master
version1.0


注意:这个时候你会发现* master会携带一个*号,表明此时在master主干线上的

3,切换到其他分支:git checkout version1.0



例如:  master
* version1.0
这样version1.0的分支上多了一个*,此时在verison1.0上修改的代码不会影响其他分支


问题:因为在某一个支干上修改代码其他分支的代码是不会受影响的,那么怎么在修改1.0版本的时候怎么才能同步到1.1版本上呢?

这个时候就要用到分支代码合并:git checkout master

git merge version1.0



4,删除不需要的分支:git branch -D version1.0



四、前面我们还有提到https://github.com/ 我们说它是一个代码托管的网站,一般公司团队开发的时候最初的代码会托管在github上面,然后会有一个git地址,然后我们登陆账号进入这个GIT地址

例如:现在有一个远程版本库的GIT地址:https://github.com/mcxiaoke/android-volley.git



使用如下命令将开发前的最初代码下载到本地:

进入你要放入代码的项目:cd d:

然后执行以下命令:

git clone https://github.com/mcxiaoke/android-volley.git



这样我的D盘下就会有一个android-volley文件,文件里面就包含了最初的原始代码



进入该目录:cd android-volley 然后执行 ls -al可以看到该文件下的子文件



然后在执行增加和提交操作。

最后我们在最初代码进行了修改和提交后,怎么把本地修改的内容同步到远程版本库上让自己的同事看到,输入如下命令:

git push origin master

origin:指定的是远程版本库的Git地址,此时的 origin=https://github.com/example/android-volley.git

master:指定的是同步到哪一个分支上

最后一步是GitHub要求输入用户名和密码进行验证,这里我们输入我们注册的用户名密码就可以了

五、由于是团队开发,可能同事也会修改代码,那么我们如何将远程版本库的修改同步到本地,输入如下命令

有两种方式

1.0、git fetch origin master

注意:此时同步的代码不会合并到任何分支上,而是会存放到一个origin/master分支上

这时我们可以通过diff命令来查看远程版本库上到底修改了哪些内容:

git diff origin/master

之后再调用如下命令将origin/master分支上的修改合并到主分支上即可,如下所示:

1.1、 git merge origin/master

2.git pull origin master:则是将fetch与merge命令结合在一起了

总结语:5大模块都已经讲解清楚,其中1,2,3是4,5模块的基础,4,5模块是团队协作的方式,如果大家想自己的代码托管在github上面

,其实也是一样的,只是首先我们要登录自己的账号密码在github上面,

然后Create a new repository,意思就是创建一个新的仓库,具体怎么操作可以参考:http://jingyan.baidu.com/album/ca00d56c5f0483e99eebcf8b.html?picindex=1

这里我给一下图



然后接下来效仿模块4与5进行就可以将自己的代码托管在github上

注明:4与5模块电脑都是需要网络才能进行的,其实玩过cmd的发现其实git和它差不多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: