.gitinore
首先介绍IDE:IDE是集成开发环境
- .gitignore文件会自动忽视不需要加入版本库的文件,在实际开发中,要把IDE中的配置文件放入到.gitignore文件中
- *.a #忽略所有.a结尾的文件
- !lib.a #但lib.a除外(!表示否定)
- /TODO #仅仅忽略项目根目录下的TODO文件,不包括subdir/TODO
- build/ #忽略build/目录下的所有文件
- doc/.txt #忽略doc/notoes.txt,但不包括doc/server/arch.txt,doc/ * /.txt是忽略doc目录下的子目录中所有以.txt结尾的文件,doc/ * /.txt是忽略所以子目录下的以.txt结尾的文件
git分支
首先介绍分支的概念:
对于某个commit ID,一定保存着上一次的commit ID(也就是parent)
master指向的是当前提交,HEAD指向的是当前分支(假如只有一个分支master,则HEAD会指向master)
我们可以查看.git文件目录中的HEAD文件,显示当前所处分支
可以使用git branch查看目前所在的分支,同时也可以使用git branch创建一个分支,新创建的分支与主分支内容一摸一样
可以使用git checkout切换分支
可以使用命令git branch -d 分支名称 来删除分支
需要注意的是,使用git branch -d 分支名称命令时,不能删除目前所处在的当前分支,如下图:
正确删除会出现如下提示:
上面出现的提示是因为:我们在新创建的分支上面做了修改,git会比较它和master主分支的差异,若存在差异,则会提示分支和主分支没有合并这种差异
也可以使用git checkout -b 分支名来创建并切换到该分支
git merge
将命令后面的分支合并到当前所处分支
在上述中,就是将new_branch3合并到master分支上,出现如下提示:
此时如调用git branch -b删除分支,则不会出现提示,因为合并起来之后这种差异已经消失,则可以直接删除
上图中的Fast-forward表示的是快进的意思,就是当使用合并命令的时候,master由前面的commit直接跳转到最新一次:
就是master直接跳转到了dev,其他没有发生改变,就是master指向发生了变化
补充:当我们在master和dev分支上同时做修改,然后使用git merge命令会出现如下提示:
git提示我们合并发生冲突,合并冲突在于我们在两个分支上修改的那个文件上,查看文件,发现有HEAD(表示当前所处分支)和dev分支上修改的内容