git学习笔记前两篇讲了git操作的常用操作,这部分是稍微进阶的用法
选一个项目,例如我的是GridViewTest,
打开GitBash,并进入到GridViewTest这个项目的根目录,然后进行以下操作。
git init
git add .
git commit –m “初始化项目”
也可以在学习笔记(一)的基础上直接进行操作,因为学习笔记(一)也是做的这个。
1:分支的用法
分支就是在现有代码的基础上,开辟一个支路,使得代码可以在主干和分支上同时进行开发,而且互相之间不会影响。
下图是分支的工作原理示意图:
如果要查看当前的版本库中有哪些分支,可以使用git branch –a 这个命令,结果如下图:
由于目前GridViewTest中没有创建过任何的分支,因此只有一个master主干线存在。
我们可以去创建一个分支version1.0,命令如下:
git branch version1.0
可以看到有一个叫version1.0的分支出现了,master主干线上的*号表示目前我们的代码还是在master上,要切换到分支version1.0上,可以使用如下命令:
git checkout version1.0
如上图所示,我们已经成功把代码切换到version1.0这个分支上面了。
特别注意:
在version1.0这个分支上面修改提交的代码,不会影响到master主干线,在master上修改并提交的代码也不会影响到version1.01分支,因此,如果你在version1.0上面修复了一个bug,在master上这个bug还是一样的存在,这时候,可以使用merge命令来完成合并操作:
git checkout master
git merge version1.0
这两行命令的作用是把在version1.0分支上修改并提交的内容合并到master分支上面,一般很容易出现代码冲突的情况,在合并的时候,遇到冲突的话,就自己要慢慢改。
当我们不需要一个分支的时候,可以使用下面的命令将这个分支删除掉:
git branch –D version1.0
2:与远程版本库协作
使用git来进行团队的合作开发?
需要一个远程的版本库,团队中的每个人都可以从这个版本库中获取最原始的代码,然后各自进行开发,以后每次提交的代码都同步到远程版本库上就好了,注意:团队中的每个人要经常获取最新代码,不然很容易发生冲突。
如果现在有一个远程版本库地址:https://github.com/huxiaoliu/TodayWeather.git可以使用如下的命令下载到本地
git clone https://github.com/huxiaoliu/TodayWeather.git
可以看到我的f盘下有了一个叫TodayWeather的文件夹,
之后,你在这份代码的基础上进行了一些修改和提交,想把本地修改的命令同步到远程版本库上面,这时用push命令来完成。
git push origin master
其中origin部分指定的是远程版本库的git地址,master指的是同步到哪一个分支,上述命令完成的就是将本地代码同步到https://github.com/huxiaoliu/TodayWeather.git这个版本库的master分支上。
我在本地的TodayWeather中,添加了一个hello.txt的测试文件,并将其在本地进行提交,然后同步到远程版本库中,命令如下:
此时,可以在远程版本库中查看到,我的远程版本库中多了多了一个hello.txt的文件
那么我们如何将远程版本库上面的修改git 同步到本地呢?
Git提供了两种功能来完成此功能,分别是fetch 和 pull
fetch的语法和push差不多,
在执行fetch语法之前,我现在远程版本库上新建了一个fetchTest1文件
git fetch origin master
执行这个命令后,就会将远程版本库上面的代码同步到本地,不过同步下来的代码,并不会合并到任何分支上面,而是会存放到一个origin/master分支上,我们可以通过diff命令来查看远程版本库到底修改了哪些东西
git diff origin/master
之后再调用merge命令将origin/master分支上的修改合并到主分支上,即可
git merge origin/master
执行之后可以发现在我的本地根目录中多了一个fetchTest1文件
pull命令则是相当于将fetch和merge这两个命令放在一起执行了,它直接从远程版本库中获取最新的代码并合并到本地,用法如下:
同样,在执行pull操作之前我现在远程版本库中新建了一个pullTest文件
git pull origin master
执行上述命令后有
同时可以发现我们项目的本地根目录直接有了最新的代码,不再需要分支合并