linux
分类: LINUX
2014-07-22 11:08:56
参考资源
git分为远程仓库和本地仓库。可以从不同的远程仓库拉下内容到本地仓库,并且也可以推送本地仓库到不同的远程仓库去。 可以通过git remote add origin 来为仓库建立别名。在pull或者是push的时候就 可以指定远程仓库。
git本地仓库由下面三棵树构成:
整个变化过程是这样的:WD -> "git add" -> INDEX -> "git commit" -> HEAD
默认来说git包含一个master分支,也可以很容易地创建和删除分支。当从远程clone到本地的时候, 会将远程repo里面所有的分支内容全部clone到本地,维护所有版本信息以及历史文件,所以本地切换分支非常快。
如果合并过来的分支,是当前分支的child的话,那么执行fast-forward合并(除非指定–no-ff),否则会执行普通的合并生成一个新的node,这个node是两个分支的共同child。
如果没有指定repo的话,根据上下文可能会指代当前branch所在的远程repo, 也可能会指代所有远程repo. 同理对于branch来说,根据上下文可能会指代当前所使用的branch, 也可能会指代repo下面所有的branch.
Git使用的标签有两种类型:轻量级的(lightweight)和含附注的(annotated)。轻量级标签就像是个不会变化的分支,实际上它就是个指向特 定提交对象的引用。而含附注标签,实际上是存储在仓库中的一个独立对象,它有自身的校验和信息,包含着标签的名字,电子邮件地址和日期,以及标签说明,标签本身也允许使用 GNU Privacy Guard (GPG) 来签署或验证。一般我们都建议使用含附注型的标签,以便保留相关信息;当然,如果只是临时性加注标签,或者不需要旁注额外信息,用轻量级标签也没问题。
参考资源
git-flow主要推行的就是一种开发方式,然后通过工具来配合这种开发方式。git-flow分为下面几类分支:
然后说说各个分支之间的关系(这个在链接里面给出的图表示非常清楚)
关系还是非常清楚的(不过我这里可能描述比较混乱).
合并两个commit
$ git reset –soft HEAD^1
$ git commit –amend
合并最后n个commit
$ git rebase -i HEAD~n
>>>> 然后替换第n个pick为s保存
视频: 感觉不错:)
转载: 大牛的博客值得学习:)