1、分支管理
几乎每一种版本控制系统都以某种形式支持分支。使用分
支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作。
有人把 Git 的分支模型称为必杀技特性,而正是因为它,将 Git 从版本控制系统家族里区分出来。
创建分支命令:
git checkout (xxxx分支的名字)
切换分支命令:
git branch (xxxxx分支的名字)
当你切换分支的时候,Git 会用该分支的最后提交的快照替换你的工作目录的内容, 所以多个分支不需要多个目录。
合并分支命令:
git merge
Git 分支管理
列出分支
列出分支基本命令:
git branch
当没有多余的分支时
没有参数时,git branch 会列出你在本地的分支。
$ git branch * master
删除分支
删除分支命令:
git branch -d (branchname)
例如我们要删除 testing 分支:
$ git branch
* master
testing
$ git branch -d testing
Deleted branch testing (was 85fc7e7).
$ git branch
* master
分支合并
git merge
$ git branch
* master
newtest
$ ls
README test.txt
$ git merge newtest
Updating 3e92c19..c1501a2
Fast-forward
runoob.php | 0
test.txt | 1 -
2 files changed, 1 deletion(-)
create mode 100644 runoob.php
delete mode 100644 test.txt
$ ls
README runoob.php
以上实例中我们将 newtest 分支合并到主分支去,test.txt 文件被删除。
合并完后就可以删除分支:
$ git branch -d newtest
Deleted branch newtest (was c1501a2).
删除后, 就只剩下 master 分支了:
$ git branch
* master
2、忽略文件 (语法规范)
空行或是以 # 开头的行即注释行将被忽略。(#xxxx)
可以在前面添加正斜杠 / 忽略当前路径文件,但不包括子目录的同名文件。
可以在后面添加正斜杠 / 来忽略文件夹。
可以使用 ! 来否定忽略,即比如在前面用了 *.apk ,然后使用 !a.apk ,则这个a.apk不会被忽略。
* 用来匹配零个或多个字符,如 *.[oa] 忽略所有以".o"或".a"结尾, *~ 忽略所有以 ~ 结尾的文件(这种文件通常被许多编辑器标记为临时文件); [] 用来匹配括号内的任一字符,如 [abc] ,也可以在括号内加连接符,如 [0-9] 匹配0至9的数; ? 用来匹配单个字符。
例子如下
# 忽略 .a 文件 ----- *.a
# 但否定忽略 lib.a, 尽管已经在前面忽略了 .a ----文件 !lib.a
# 仅在当前目录下忽略 TODO 文件, 但不包括子目录下的 subdir/TODO -------/TODO
# 忽略 build/ 文件夹下的所有文件 ----build/
# 忽略 doc/notes.txt, 不包括 doc/server/arch.txt--------doc/*.txt
# 忽略所有的 .pdf 文件 在 doc/ directory 下的-------doc/**/*.pdf
3.冲突解决
为什么会出现冲突??
主要原因是版本不一样,分支1的版本C跟分支2的版本B的上一个版本是不一样的,所以会出现冲突
如何解决冲突呢???
因为 出现冲突的原因是多人同时修改同一个文件,我们只需要把冲突的地方删掉,然后重新上传就可以了