git pull
从远程获取最新版本并merge到本地
git pull = git fetch + git merge
git fetch:相当于是从远程获取最新版本到本地,不会自动merge
git merge
作用:合并分支
假设存在下面的历史节点,且当前所在的分支为master。
那么,git merge topic命令会把master分支和topic分支上共同节点(E节点)之后分离的节点(即topic分支的A B C节点)合并到master分支,直到topic分支的commit节点(C节点),并沿着master分支和topic分支创建一个合并节点(H节点)。
git仓库
git仓库的三个组成部分:
1、工作区(Working Directory):在 git 管理下的目录都算是工作区,我们平时的编辑工作都是在工作区完成。
2、暂存区(Stage):临时区域,存放将要提交文件的快照。
3、历史记录区(History):git commit 后的记录区。
git stage和git add属于同义指令,作用都是将要提交的文件放入暂存区Stage。
下载代码发现冲突?
git stash // 将自己的修改隐藏
git pull // 拉取远程仓库代码
git stash pop // 合并本地修改
GIT vs SVN
1、Git是分布式的, SVN是集中式的。
SVN必须有一个中央服务器,开发流程是干活时从中央服务器得到最新的版本,然后干活,干完后把自己做的工作推送到中央服务器。
Git的中心服务器仅仅是为了方便交换大家的修改,但是这个服务器的地位和我们每个人的PC是一样的,没有它大家一样可以工作,只不过交换修改不方便而已。
2、分支功能
SVN创建分支,其实就是创建了一个新的文件夹,拷贝了一份源文件。如果一个成员创建了一个分支,将会影响所有的人。那么所有的人都将拥有同样的分支。
Git创建分支,并没有创建文件夹,甚至看不到任何改变,就是多了一个索引文件,记录这个分支的变化。每个分支,都是独立的,在这个分支里想做什么都可以,对其他分支没有一点影响。用户可以在同一个文件夹下,快速地切换不同的分支。
3、健壮性
安全性更高。
SVN集中式版本控制的中央服务器要是出了问题,所有人都没法干活了。
GIT下,每个人的电脑下都有完整的版本库,当电脑坏掉了不要紧,随便从其他人哪里复制一个就可以了。