git随笔

1、git有三种状态:Change, Staged, Committed。
Change(Unstaged):你改动了一个,没有调用任何git命令前,就是这种状态。
Staged:调用git add或者git commit -a之后,进入Staged状态,表示申明要变动了。
Committed:Commit,生成新的版本commit号,进入此状态。

 

A、当文件第一次在某个分支,add并commit的时候,,checkout到其它分支,这个分支必须要处于commit状态

B、新增文件从来没有在任何一个分支add并commit过,那么它不属于任何一个分支,所以可以随便checkout,每个分支下面都会这个文件,也就是说任何git操作都不会对该文件造成影响,除非在某个分支下,进行了add并commit,那么它便属于该分支;此时如果切换到其他分支,那么其他分支看不到该文件

C、

Fast forward : 当前分支合并到另一分支时,未产生任何新的commit,就会直接移动文件指针。这个过程叫做fastforward。举例来说,开发一直在master分支进行,但忽然有一个新的想法,于是新建了一个develop的分支,并在其上进行一系列提交,完成时,回到 master分支,此时,master分支在创建develop分支之后并未产生任何新的commit。此时的合并就叫fast forward。你可以这样理解,master指针指向了dev的新的commit(很暴力吧),而不是自己在自己的线上(master)新生成一个commit,因此你看不到合并记录!

No Fast forward:

如果产生新的新的commit,也没有产生冲突,在master(主线)上会有一次新的提交!你可以看到合并记录!

如果产生新的新的commit,产生冲突,在master(主线)会有一次新的提交!你可以看到合并记录!

 

D、git init 之后,git branch发现没有master,是因为没有任何内容add到该master分支;除非add并commit或者新建一个分支 

 

E、dev克隆master数据,commint不会带过来

posted @ 2016-04-13 09:47  qissen  阅读(61)  评论(0)    收藏  举报