首页 > 代码库 > Git学习笔记一《版本控制之道-使用Git》
Git学习笔记一《版本控制之道-使用Git》
1、在Windows中安装完git后,需要进行一下配置:
$ git config --global user.name "zhangliang"
$ git config --global user.email "1424@qq.com"
2、用下列命令可检查上述设置是否成功:
$ git config --global --list
user.name=zhangliang
user.email=1424@qq.com
3、若想在命令行窗口中使用不同的颜色显示不同类型的内容,请将“color.ui"的值设为”auto"或"always",具体命令为:
$ git config --global color.ui "auto"
4、打开在线帮助文档
$ git help config
5、查看历史信息
在命令行窗口的Git工作目录树下键入gitk就可以启动,在gitk命令中添加--all参数,可以显示全部分支的历史,而不仅仅是当前分支的历史。
6、创建版本库
可以在想放项目源代码的位置创建一个目录(可以用命令行创建),并进入到这个目录,然后输入命令git init即可。
$ mkdir mysite
$ cd mysite
$ git init
7、把文件添加到版本库的索引(index):
$ git add index.html
(其中index.html文件可以手动在目录下创建编辑也可以用touch index.html + vim index.html命令行实现)
8、提交
$ git commit -m "add in hello world HTML"
(其中,-m的作用是本次提交留言,若是多条留言,可以继续添加-m "XXX")
9、查看提交信息
$ git log (-2)
后面括号部分可以不加,数字代表查看几条信息。命令git log输出的提交名称的前七位字符和命令git commit输出的相同。
10、查看当前工作目录树状态
$ git status
11、git中有三个地方可以存放代码:第一个地方为工作目录树,编辑文件时可以直接在这里操作;第二个是索引(index),也就是暂存区(staging area),暂存区是工作目录树和版本库之间的缓冲区;第三个也就是最终的一个,是版本库。暂存区中存放的是准备提交到版本库中的修改。
12、创建分支的命令是git branch,该命令需要两个参数:新分支名称和父分支名称,新分支基于已经存在的父分支,将父分支下的文件都拷贝一份到新建的分支下。
$ git branch RB_1.0 master
13、提交全部修改过的文件:
$ git commit -a
14、查看当前所在的分支
git branch -vv
(然后能看到标亮的那个分支即是,或者在命令行窗口中能看到一个“()”里的分支名称即为当前分支)
15、切换分支
$ git checkout RB_1.0
switched to branch "RB_1.0"
16、创建+切换分支:
git checkout -b <name>
git checkout -b <name> master
注意上述第二条命令中的第三个参数告诉git,不是从当前分支而是从主分支上创建新分支即基于主分支的末梢创建新分支,也可以传其他的分支名,这样就可以在指定的任意分支上创建新分支。
17、删除分支:
git branch -d <name>
18、合并某分支到当前分支:
git merge <name>
19、更改分支名称:
git branch -m master mymaster
有三个参数,-m参数告诉git要执行分支移动(重命名)操作,另外两个参数分别是分支原名称和新名称。
20、显示本地版本库中所有的本地分支名称
git branch
21、有些版本控制系统在创建分支时会将所有的文件复制到新目录中,git可不这么做,它只把分支创建后的修改记录在这条分支上。这么说其实并不完全准确,实际上,git的分支只记录和跟踪该分支末梢的那个提交,因为沿这个版本回溯,可以找到该分支完整的历史轨迹。
22、使用分支时,最难确定的是何时创建分支,这是一门艺术。
试验性修改+增加新功能+Bug修复
23、合并分支
直接合并:首先切换到合并操作的目标分支,然后用git merge name1 其中,name1是指想要合并到当前分支的源分支名称。
压合合并:首先切换到合并操作的目标分支,然后用git merge --squash name1 将另一条分支上的全部提交压合成当前分支上的一个提交。此时,name1分支上的提交已经合并到当前工作区并暂存,但还没有作为一个提交提交到版本库中。再利用“正常”提交流程提交到版本库中即git commit……。
捡选合并:将一条分支上的一条提交合并到当前分支,git cherry-pick 321d76f其中,321d76f是提交的名称。
拣选合并多个提交时,利用git cherry-pick -n 321d76f 然后会提示finished one cherry-pick,请注意,完成本次拣选操作时git停了下来,而不是立即提交;接着可以进行下一个拣选操作,一旦拣选完需要的各个提交,就可一并提交改动。接下来继续进行提交操作,但不要使用-m参数,即git commit 编辑器会使用刚刚拣选的提交的提交留言,作为现在的提交留言。
24、合并发生冲突时,<<<<<<<<<<和>>>>>>>>>>代表两部分内容。第一,<<<<<<<<<<后面跟随的是当前分支中的代码,而>>>>>>>>>>之前的则是另一条分支上的代码。第二,在<<<<<<<<<<和>>>>>>>>>>行文件名之前,是所在分支的名称。
25、删除分支:
git branch -d name
但当分支未进行合并而要要删除时,需要用git branch -D name进行强制删除。
26、分支重命名
git branch -m contact contacts代表将分支名称改为contacts。
参数-m不会覆盖已有分支名称,所以新分支名称也即命令行中的第二个分支名称必须是唯一的,
将参数改为-M就可以覆盖已有分支名称了,但这种操作要小心使用。
Git学习笔记一《版本控制之道-使用Git》