美文网首页
git基本操作实践

git基本操作实践

作者: _安哥拉 | 来源:发表于2017-06-02 14:30 被阅读75次

    第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 — 以图标的形式查看分支
    此时此刻很有成就感,成功新建了一个分支,并且合并啦

    历史记录图表.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,不然没有记录,如果自己不小心把代码搞丢了,是找不到的

    现在的状态.png 我的目标状态.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 diff 查看不同.png

    并提交

    $ git commit -am"Fix typo"
    

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

    (4)更改历史

    $ git rebase -i HEAD~2
    

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

    最新两次历史记录.png

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

    相关文章

      网友评论

          本文标题:git基本操作实践

          本文链接:https://www.haomeiwen.com/subject/xvodfxtx.html