【朝花夕拾】git命令使用篇

                                   工作中用到过的git命令整理

       git是我们平时最常用的版本控制工具。相比于svn,git有如下几大优势:(1)git是分布式管理,不需要单独的服务器存储代码,团队中的每一台机器都可以作为服务器,都相互独立。其最大的优点就是,在断网的情况下,仍然可以正常地使用git来管理本地的提交等版本管理操作。待网络恢复以后,只需要把所有的提交push到远程Git服务器即可。(2)切换分支速度非常快,几乎是瞬间完成,对分支的管理方面效率比svn更高,svn的分支切换太慢,导致该功能形同虚设。

       该篇文章中,记录了平时使用时常用的命令,其中绝大部分都是平时自己用过的命令。在学习和使用工具时,主要参考了如下两个网站:

https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

https://git-scm.com/book/zh/v2

(一)相关配置

    1.查看git配置信息  $ git config --list

        

【朝花夕拾】git命令使用篇

    2.修改配置信息(平时使用时,只修改过user.name和user.email)

         $ git config --global user.name "Your Name"

   $ git config --global user.email "email@example.com

         

【朝花夕拾】git命令使用篇

    3. $ git init 把当前目录变成Git仓库

       

【朝花夕拾】git命令使用篇

(二)本地Git操作

       1.$ git status 查看新修改文件状态

       2.$ git checkout filename 还原修改的文件(根据自己演示的结果,得到的结论)

              (1)当unstage区(即只修改但未add时)中有,而stage区中没有该filename文件时,该命令使filename文件还原为最新一次commit中的文件

              (2)当unstage区中有,stage区中也有时,执行该命令后,unstage区文件还原为stage中的内容

              (3)当unstage区中没有,stage区中有时,执行该命令后,stage区文件不变,此时需要使用$ git reset HEAD filename还原(后续会讲到该命令)

       3.$ git add 将工作区中新修改文件添加到stage区

             filename 将指定文件添加到stage区

             dir 将某个文件夹添加到stage区

             .  在Git Version2.x中将当前文件夹下所有有改动(修改的,删除的,新创建的文件)的文件加入到 stage区。在Git Version1.x中只将新修改的和新创建的文件添加到stage区。

             -u (update)将所有tracked文件添加到stage区中,从测试情况来看,删除的文件和新修改的文件都是tracked,新创建的文件是untracked文件,用git status可以查看(简单点说,就是将删除的,新修改的文件添加到stage区)。

             -A (all) 将所有change(修改的,删除的,新创建的文件)都提交到stage区

             --ignore-removal 新创建的文件和新修改的文件,被添加到stage区。忽略掉被删除的文件。和Git Version1.x中 git add . 功能一样。

             -h 显示帮助信息

                 

【朝花夕拾】git命令使用篇

       4.$ git reset HEAD可以将stage中的change还原到unstage区(即add前的状态)中,详细的可以参考第6点。

       5.$ git commit

               -a (--all) 将被track的文件,提交。包括没有被add的文件。

               -m (--message) "message"  将stage区域的文件添加到当前分支中,并带有log

               --amend 将弹出一个编辑页面,编辑修改上一次commit的内容。

               -C(--reuse-message) <commit> 使用和commit-id相同的提交信息(可以用于补充提交内容)

               --reset-author 重新设置作者。

       6.$ git reset 将仓库提交指针指向某个版本(可能是前进,也可能是回退)

              --soft  指针移动后,当前change仍不变。

              --hard  指针移动后,当前change被还原为未修改状态。

              没有hard/soft时,stage区中的change还原到unstage区。

              commit-id,HEAD指针指向到commit-id的提交点版本。

              HEAD 表示当前版本 HEAD^表示上一个版本,多个^可以共同使用,读者可以自行查询。

        7.$ git diff

            file 添加文件名,针对某个文件进行比较。

            无参数 (1) 如果stage区有,则是工作区和stage去做比较

                        (2) 如果stage区没有,则是工作区和分支中做比较

            HEAD 比较工作区和HEAD指针指向的版本库中文件做比较

            --cache 暂存区和分支做比较。                  

        8.$ git rm

        9.$ git stash 隐藏所有tacked(modified和deleted)的change,stash就是隐藏的意思。无论是unstage区还是stage区的,都可以被stash隐藏保存起来。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zypwyp.html