git使用笔记(二)分支与合并

By francis_hao    Nov 18,2016

查看分支,* 表示当前所在分支

$ git branch

查看分支和最后一次提交记录

$ git branch -v

新建分支

$ git branch alphabet

切换分支

$ git checkout alphabet

新建和切换可以合并为一步操作

$ git checkout -b digital

删除一个分支,注意:不能删除当前所在分支

$ git branch -d for_delete

查看所有分支的提交记录

$ git log --graph --decorate --all --oneline

对应的关系图

合并digital分支到master分支,需要在master分支上进行。其实就是合并digital分支到当前分支。

$ git merge digital -m "merge digital to maste"

这里没有冲突,所以顺利合并了。合并后的状态

如果有冲突的话合并会失败。

冲突的信息都放在了文件a中,需要手动解决,文件a的内容

解决冲突后,和修改了文件之后的操作一样。

$ git add a
$ git commit -m "resolved conflict"

合并失败的操作不会在log记录,如图,因为没有"merge with conflict"项。但是在reflog里有。


本文由 刘英皓 创作,采用 知识共享 署名-非商业性使用-相同方式共享 3.0 中国大陆 许可协议进行许可。欢迎转载,请注明出处:
转载自:http://www.cnblogs.com/yinghao1991/p/6079594.html

参考

[1] 蒋鑫.《git权威指南》北京:机械工业出版社,2011.6

[2]Git Community Book中文版 http://gitbook.liuhui998.com/3_3.html分支与合并

[3]V2EX https://www.v2ex.com/t/84206 rrrrutdk

时间: 2024-08-03 18:38:48

git使用笔记(二)分支与合并的相关文章

【Git】笔记4 分支管理1

1.创建与合并分支 一开始的时候,master分支是一条线,Git用master指向最新的提交,再用HEAD指向master,就能确定当前分支,以及当前分支的提交点: 每次提交,master分支都会向前移动一步,这样,随着你不断提交,master分支的线也越来越长: 当我们创建新的分支,例如dev时,Git新建了一个指针叫dev,指向master相同的提交,再把HEAD指向dev,就表示当前分支在dev上: 你看,Git创建一个分支很快,因为除了增加一个dev指针,改改HEAD的指向,工作区的文

【版本控制】git学习笔记(二)

关于git的基本使用请阅读上篇博文内容,[版本控制]git学习笔记(一). 1.远程仓库 Git是分布式版本控制系统,同一个Git仓库,可以分布到不同的机器上.怎么分布呢?最早,肯定只有一台机器有一个原始版本库,此后,别的机器可以"克隆"这个原始版本库,而且每台机器的版本库其实都是一样的,并没有主次之分. 你肯定会想,至少需要两台机器才能玩远程库不是?但是我只有一台电脑,怎么玩? 其实一台电脑上也是可以克隆多个版本库的,只要不在同一个目录下.不过,现实生活中是不会有人这么傻的在一台电脑

Git学习笔记五--分支管理

为什么要引入分支? 分支在实际中有什么用呢?假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,如果立刻提交,由于代码还没写完,不完整的代码库会导致别人不能干活了.如果等代码全部写完再一次提交,又存在丢失每天进度的巨大风险. 现在有了分支,就不用怕了.你创建了一个属于你自己的分支,别人看不到,还继续在原来的分支上正常工作,而你在自己的分支上干活,想提交就提交,直到开发完毕后,再一次性合并到原来的分支上,这样,既安全,又不影响别人工作. 查看分支:git branch 创建分

【Git】笔记5 分支管理2

来源:廖雪峰 通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息. 如果要强制禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息. git merge --no-ff -m "merge with no-ff" dev 合并dev分支,请注意--no-ff参数,表示禁用Fast forward,因为本次合并要创建一个新的commit,所以加上-m参数,把com

Git学习笔记(二)

移除文件 如果需要从Git中移除某个文件,则需要从已跟踪文件清单中移除(即从暂存区域中移除),然后提交.可以使用git rm命令完成此项工作,该命令会连带从工作区域中删除指定的文件,这样以后就不会出现在未跟踪文件清单中.最后提交时,该文件不再纳入版本管理中.如果文件删除之前被修改过且已经放到了暂存区域中,则必须使用强制删除选项-f,以防误删文件后丢失修改的内容.另外,如果想把文件从Git仓库中删除(即从暂存区域中删除),但仍希望保留在工作区域中的文件,即仅从跟踪清单中删除时,使用-cached选

git 学习笔记二 (windows环境)

1.远程仓库 github 本地仓库与远程github库通信使用ssh加密,本地必须先创建ssh key,所在目录 C:\Users\liugd\.ssh (用户主目录下的.ssh文件夹) 参考链接 关联远程版本库 git remote add origin [email protected]:path/repo-name.git 推送版本库的内容命令如下 git push -u origin master 2.克隆远程版本库命令 git clone

git 使用笔记二

通过最近GIT的学习以使用,感觉是越来越顺手了,也更深入了 GIT有四种原子对象 1块(blob[内容]  2目录树(tree)[关系]   3提交(commit)  4标签  (tag) 对象ID为SHA1散列,表示为40位的16进制数,具有全局唯一标识 例:git hash-object [file_name] 生成文件内容的SHA1散列 git write-tree 树对象ID git ls-files -s  树对象索引内容 git rev-parse  [id| tag] 补全对象ID

GIT学习笔记二(本地项目发布到GIT)

1 在GIT和Eclipse创建项目(GIT建项目参考下面两幅图) 图3 2创建本地仓库 找到要上传GIT的工程,右键 ->GIT Bash, 输入命令 git init   (参考下面两幅图) 3在Eclipse中把工程代码传到GIT 工程右键->Team->share project->Git  一路点击下一步 接下来,再一次 工程右键->Team->Add to Index 接下来,再一次 工程右键->Team->commit ,会弹出如下dialog

《Pro Git》笔记3:分支基本操作

<Pro Git>笔记3:Git分支基本操作 分支使多线开发和合并非常容易.Git的分支就是一个指向提交对象的可变指针,极其轻量.Git的默认分支为master. 1.Git数据存储结构和分支 git提交时会将暂存文件的内容,暂存的目录结构,提交对象,含附注标签对象都以包含信息头的二进制文件形式存储到版本库中(.git/objects目录),存储的对象以其自身SHA1值作为唯一标识,SHA1前两位为存储对象所在目录名,SHA1后38位为存储对象的文件名.存储的数据对象类型有: blob(文件内