Git简介

Git原理及特性

每个项目都有一个git目录,它是Git用来保存元数据和对象数据库的地方。该目录非常重要,每次克隆镜像仓库的时候,实际拷贝的就是这个目录里面的数据。

从项目中取出某个版本的所有文件和目录,用以开始后续工作的叫做工作目录。这些文件 实际上都是从git目录中的压缩对象数据库中提取出来的,接下来就可以在工作目录中对 这些文件进行编辑。

所谓的暂存区域只不过是个简单的文件,一般都放在 git 目录中。有时候人们会把这个文件叫做索引文件,不过标准说法还是叫暂存区域。

Git相比于其他版本管理工具的优点

  • 直接快照,而非比较差异
  • 近乎所有操作都可本地执行
  • 时刻保持数据完整性
  • 多数操作仅添加数据
  • 三种状态:已提交(committed),已修改(modified)和已暂存(staged)

基本的 Git 工作流程如下所示:

  1. 在工作目录中修改某些文件。
  2. 对这些修改了的文件作快照,并保存到暂存区域。
  3. 提交更新,将保存在暂存区域的文件快照转储到 git 目录中。

git add命令

这是个多功能命令,根据目标文件的状态不同,此命令的效果也不同:

  • 可以用它开始跟踪新文件,
  • 或者把已跟踪的文件放到暂存区,
  • 还能用于合并时把有冲突的文件标记为已解决状态等

从远程仓库抓取数据

  • git fetchfetch命令只是将远端的数据拉到本地仓库,并不自动合并到当前工作分支,只有当你确实准备好了,才能手工合并。
  • git pull,从原始克隆的远端仓库中抓取数据后,自动合并到工作目录中当前分支。

分支的合并

把一个分支整合到另一个分支的办法有两种:merge(合并) 和 rebase(衍合)。

我们假设开发进程分叉到两个不同分支,又各自提交了更新。

最初分叉提交的历史.png

merge合并

使用merge命令,它会把两个分支最新的快照(C3C4)以及二者最新的共同祖先(C2)进行三方合并。

通过Merge整合分支.png

rebase衍合(有人叫变基)

你可以把在C3里产生的变化补丁重新在C4的基础上打一遍。

它的原理是回到两个分支(你所在的分支和你想要衍合进去的分支)的共同祖先,提取你所在分支每次提交时产生的差异,把这些差异分别保存到临时文件里,然后从当前 分支转换到你需要衍合入的分支,依序施用每一个差异补丁文件。

衍合原理示意.png

现在,你可以回到master分支然后进行一次快进合并。

使用衍合时需要注意:
永远不要衍合那些已经推送到公共仓库的更新

一个标准的Git工作流

  1. master 是长期分支,一般用于管理对外发布版本,每个commit对一个 tag,也就是一个发布版本。
  2. develop是长期分支,一般用于作为日常开发汇总,即开发版的代码。
  3. feature是短期分支,一般用于一个新功能的开发。
  4. hotfix是短期分支 ,一般用于正式发布以后,出现bug,需要创建一个分支,进行bug修补。
  5. release是短期分支,一般用于发布正式版本之前(即合并到master分支之前),需要有的预发布的版本进行测试。release分支在经历测试之后,测试确认验收,将会被合并的developmaster

Git使用经验

问题:当你在开发时,发现主分支有了新的提交,该怎么办?
建议:使用衍合,把主分支的更新衍合到你的本地分支!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,294评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,780评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,001评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,593评论 1 289
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,687评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,679评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,667评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,426评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,872评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,180评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,346评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,019评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,658评论 3 323
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,268评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,495评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,275评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,207评论 2 352

推荐阅读更多精彩内容

  • Git是目前最流行的版本管理系统,也是最先进的分布式版本控制系统(distributed version cont...
    pro648阅读 5,690评论 1 17
  • 每每看到很多朋友写作,绘画,励志,总会打鸡血一样。离开舒服区,做一个全新的自己,却没有正规的学习,没有花心思去成...
    林海未风阅读 213评论 1 1
  • 亲爱的宝宝,你好么。 今天算是不错的一天,上周的努力在本周化成了一部分回报。今天在幼儿园的相册里看到你的照片,感觉...
    帅气的路人丙阅读 110评论 0 0
  • 我是雨和雪的老熟人了,我有90岁了,雨雪看老了我,我也把它们给看老了。这是著名作家迟子建的《额尔古纳河右岸》的开...
    儒逸馨阅读 1,618评论 0 1