博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
git命令详解(一)
阅读量:5294 次
发布时间:2019-06-14

本文共 1459 字,大约阅读时间需要 4 分钟。

今天我们来详解一下git的各种命令,此为git的第一篇,后续还会有好几篇,希望大家看了能有所进步

第一篇的命令

  1.

  2.

  3.

  4.

Git Commit

Git 仓库中的提交记录保存的是你的目录下所有文件的快照,就像是把整个目录复制,然后再粘贴一样,但比复制粘贴优雅许多!

Git 希望提交记录尽可能地轻量,因此在你每次进行提交时,它并不会盲目地复制整个目录。条件允许的情况下,它会将当前版本与仓库中的上一个版本进行对比,并把所有的差异打包到一起作为一个提交记录。

Git 还保存了提交的历史记录。这也是为什么大多数提交记录的上面都有父节点的原因 。对于项目组的成员来说,维护提交历史对大家都有好处。

关于提交记录太深入的东西咱们就不再继续探讨了,现在你可以把提交记录看作是项目的快照。提交记录非常轻量,可以快速地在这些提交记录之间切换!

Git Branch

Git 的分支也非常轻量。它们只是简单地指向某个提交纪录 —— 仅此而已。所以许多 Git 爱好者传颂:

早建分支!多用分支!

这是因为即使创建再多分的支也不会造成储存或内存上的开销,并且按逻辑分解工作到不同的分支要比维护那些特别臃肿的分支简单多了。

只要记住使用分支其实就相当于在说:“我想基于这个提交以及它所有的父提交进行新的工作。”

 

分支与合并

将两个分支合并到一起。就是说我们新建一个分支,在其上开发某个新功能,开发完成后再合并回主线。

咱们先来看一下第一种方法 —— git merge。在 Git 中合并两个分支时会产生一个特殊的提交记录,它有两个父节点。翻译成自然语言相当于:“我要把这两个父节点本身及它们所有的祖先都包含进来。”

 

1.我们准备了两个分支,每个分支上各有一个独有的提交。这意味着没有一个分支包含了我们修改的所有内容。咱们通过合并这两个分支来解决这个问题。

   我们要把 bugFix 合并到 master 里

   git merge bugFix

 

   哇哦!看见了吗?首先,master 现在指向了一个拥有两个父节点的提交记录。假如从 master 开始沿着箭头向上看,在到达起点的路上会经过所有的提交记录。这意味着 master 包含了对代码库的所有修改。

 

git合并分支的第二种方法

Git Rebase

Rebase 实际上就是取出一系列的提交记录,“复制”它们,然后在另外一个地方逐个的放下去。

Rebase 的优势就是可以创造更线性的提交历史,这听上去有些难以理解。如果只允许使用 Rebase 的话,代码库的提交历史将会变得异常清晰。

还是准备了两个分支;注意当前所在的分支是 bugFix(星号标识的是当前分支)

我们想要把 bugFix 分支里的工作直接移到 master 分支上。移动以后会使得两个分支的功能看起来像是按顺序开发,但实际上它们是并行开发的。

咱们这次用 git rebase 实现此目标

执行 git rebase master

运行结果:

注意,提交记录 C3 依然存在(树上那个半透明的节点),而 C3' 是我们 Rebase 到 master 分支上的 C3 的副本。

现在唯一的问题就是 master 还没有更新,下面咱们就来更新它吧……

现在我们切换到了 master 上。把它 rebase 到 bugFix 分支上

执行git rebase master

 

运行结果:

 

 

转载于:https://www.cnblogs.com/suihang/p/10460158.html

你可能感兴趣的文章
linux rc.sysinit文件详解
查看>>
BLSTM的训练算法、解码算法以及模型的改进
查看>>
深入理解Aho-Corasick自动机算法
查看>>
NBUT 1118 Marisa's Affair (排序统计,水)
查看>>
c++的bind1st()与bind2nd() 二元算子转一元算子
查看>>
使左右两个DIV高度相等的方法
查看>>
用valgrind检测php扩展内存泄露
查看>>
django 模型中 class Meta 内 各种属性的用法
查看>>
ASP.NET 4.0配置文件中的ClientIDMode属性
查看>>
常对象与this指针
查看>>
PHP中调用move_uploaded_file函数提示failed to open stream和 Unable to move
查看>>
转:织梦CMS系统中power by dedecms怎么去掉,power by dedecms什么
查看>>
Maven实战三
查看>>
Ubuntu下软件的搜索与安装
查看>>
LeetCode Matrix Cells in Distance Order
查看>>
【BZOJ1041】数论
查看>>
stark组件之处理函数动态url构造(五)
查看>>
zTree + iFrame优化查询体验
查看>>
自己的Java规范文档
查看>>
Ajax请求Session超时的解决办法:拦截器 + 封装jquery的post方法
查看>>