Git学习记录

安装和配置

          配置需要姓名和邮箱

  1 git   config  - -global user.name 'benjious'
  2 git   config  - -global user.email  '12345678@qq.com'

Git学习

          下面这张图是git 中存放东西的几个区域,我们常用的命令如下所示

捕获

                                                                                              图一

Repository创建

            在需要创建repository 的目录下右键鼠标,点击 GIT BASH , 输入

  1 git    init

 

加入文件到暂存区

           在每次开始操作时,最好使用一下两个命令,查看最近纪录和当前repository的状态

  1 git   log
  2 git   status

          使用 git log 后在git命令行界面会发现输入框出现冒号,然后退不出去,这时只要输入 “q” 就可以退出去了

         下面是单个文件的添加到暂存区,当前路径路径下多个文件夹添加到暂存区

  1 //single file add  to . eg : 123.txt  
  2 git  add  123.txt
  3 
  4 git add .

          添加到 repository

  1 git  commit  -m "This is a message !"

情节一

         我的repository 下有个 123.txt ,我进行了第一次改动

改动1                                                                                     图二

  1 git add .
  2 git commit -m" this is my first commit "

       第一次改动后提交

提交改动1

图三

         同样进行第二次改动

改动2

图四

  1 git add .
  2 git commit -m" this is my second commit "

使用一下命令查看两次提交的信息,两个减号后面的是参数

  1 git  log  --pretty=oneline

提交纪录

图五

           现在使用一下命令回退到第一次提交,

git reset   --hard    head^1

reset

          其中参数  --hard 代表的含义是表示重置指针(head)的范围, 见下图,

03

        --mixed 参数是默认的,假如我后悔了,我想回到第二次修改的版本,应该如何做呢?

//查看git 命令历史
git reflog 
git reset  --hard 版本号

        假如我改动了文本

       修改文档

        我想回到修改前,

git reset --hard head

reset到修改前

        又或者是我修改了一半,有部分已经 git add .  了(即是缓冲中有数据了),而不又不想让工作目录回到修改前,可以使用

git reset --mixed  head

       创建并切换到新的分支,

git checkout -b  hotfix

04         切换回之前的分支,

git checkout master

          删除一个分支

//删除hotfix 分支
git branch -d hotfix

         revert 命令则是用下图来表示

06

          可以看到revert 这个命令指的是拿之前的提交作为一个提交,比如说,以上图为例, 绿色的分支,从左至右提交的版本分别为 v1, v2 ,v3 ,head为v3 , 此时正在开发的我发现有一个bug是在v1引入的,我想回到v1之前的版本,那么当我执行

git revert v1生成sha1值

         就会生成V4, 需要注意的是 执行上面命令时,笔者做这个例子时会出现:

error

         那是因为当我在v3 时,v2和 v3 进行的修改 git 并不知道你是要不要, 此时打开unmerged 的文件就会看到

》》》》》》》》》》》》HEAD 
===========================

         它表示的v3时的修改和v1之前提交的文件的异同,你只有在进行取舍或是修改(或者说是修bug)后,进行提交才会生成v4 。

原文地址:https://www.cnblogs.com/Benjious/p/9265563.html