git基本操作实践

第4章 通过实际操作学习git

4.1 git基本操作
  1. git init— 初始化仓库
    生成 .git 文件夹,这个 .git 目录里管理着当前目录内容所需的仓库数据,在Git中,我们将这个目录的内容成为“附属于该仓库的工作树”。

  2. git status— 查看仓库的状态

  3. mkdir abc 创建文件夹abc

  4. touch abc.html 创建文件 abc.html

  5. git log — 查看提交日志
    (1) 只显示指定目录、文件的日志 $ git log README.md
    (2)显示文件的具体改动内容 $ git log -p

  • git diff查看工作树和暂存区的区别
    不妨养成在$ git commit之前,$ git diff HEAD,查看本次提交和上次提交有什么区别
    HEAD是指针,指向当前分支的最新一次提交

4.2分支的操作
  1. git branch— 显示分支一览表
  2. $ git checkout -b 创建、切换分支
    如果你想以当前的master分支为基础创建新的分支,我们需要用到$git checkout -b
    (1)创建 feature-A 分支,并进行提交
$ git checkout -b feature-A    //创建分支 feature-A

等同于

$ git branch feature-A //创建分支
$ git checkout feature-A //切换到分支

(2)切换到 master 分支

$git checkout master   //checkout 查看

git checkout - '-' 连字符表示切换回上一个分支

  • git merge — 合并分支
    假设feature-A 这个特性分支开发完毕,想要将他合并到主干分支master中。
    (1)首先切换到 master 分支
$git checkout master

(2)然后合并分支, 为了历史记录,需要创建合并提交,因此在合并时加上 --no-ff参数

$ git merge --no-ff feature-A

咳咳咳!!!!敲黑板,这个时候会进入 vim 编辑器状态,想当时我折腾了半天不知道那是个啥
随后编辑器会启动,用于录入和并提交的信息
,默认信息中已经包含了是从分支合并过来的相关内容,所以保存就好了,然后关闭编辑器
先退出输出状态 Esc,然后进入输入状态 shift + :,最后输入 wq!(保存并退出)
vim命令总结
(3)成功的话,就会看到

合并成功返回

4.. git log --graph — 以图标的形式查看分支
此时此刻很有成就感,成功新建了一个分支,并且合并啦

git基本操作实践_第1张图片
历史记录图表.png

4.3 更改提交的操作
  1. git reset — 回溯历史版本
    如果此时我想创建一个feature-A 的兄弟分支,feature-B,怎么办呢?
    那就需要回溯到创建A的分支之前的节点,创建一个B分支,
    (1)要让仓库的HEAD、暂存区、当前工作树回溯到制定状态,需要用到git reset --hard命令,只需要提供目标时间点的哈希值,就可以完全恢复至改时间点的状态。
Paste_Image.png

(2)此时已经恢复到了创建分支A之前的节点,创建分支B

$ git checkout -b feature-B

随便写点什么,并且提交,一定要提交哦,也就是git addgit commit,不然没有记录,如果自己不小心把代码搞丢了,是找不到的

git基本操作实践_第2张图片
现在的状态.png

git基本操作实践_第3张图片
我的目标状态.png

(3)分支培育好了,要合并了
---------推进至A分支合并后的状态
git log 命令只能查看以当前状态为终点的历史日志,所以这里要使用 git reflog命令,查看当前仓库的操作日志 ,寻找此时的哈希值,然后 git reset --hard,之后合并
2. git rebase -i——压缩历史
在合并特性分支之前,如果发现已提交的内容中有些许拼写错误,这可以合并到上一个提交压缩成一个历史记录,来保证历史记录的高效性、正确性。
(1)创建分支C

$ git checkout -b ccc

(2)对文件进行修改(并预留错误),并提交
很小的更改可以直接一次性git commit -am"information",不需要git addgit commit
(3)修正代码中错误
查看一下当前工作区和暂存树中的不同git diff

git基本操作实践_第4张图片
git diff 查看不同.png

并提交

$ git commit -am"Fix typo"

漏字错字等失误称作typo,但是历史记录中不需要出现这类信息,所以要合并到上一个历史记录

(4)更改历史

$ git rebase -i HEAD~2

用这种方法执行git rebase命令,可以选定当前分支中包含HEAD(最新提交)在内的两个最新历史记录为对象,并在编辑器中打开

git基本操作实践_第5张图片
最新两次历史记录.png

ea3730a左侧的pick部分删除,改为fixup,保存编辑器里的内容,关闭编辑器

你可能感兴趣的:(git基本操作实践)