玩转git版本控制软件

一、git的基本介绍

  1、什么是git?

    git是个开源的分布式版本控制软件,用以有效、高速的处理从很小到非常大的项目版本管理。说白了就是个版本控制软件

  2、git的使用方法

    git软件是通过命令来实现管理的,git命令和linux命令类似,可以通过Linux命令方式来管理git

二、git命令基本介绍

  1、版本上线需要用到的功能

    1、使用pwd和cd命令进入到项目的所在目录(项目根目录)

    2、git init

      

      初始化当前项目目录即将当前文件夹初始化为版本库目录,初始化后,会在当前目录自动创建 .git 隐藏文件夹,该文件是Git中最重要的文件夹,因为Git相关文件以及版本都将保存在该文件夹中,有了它就可以记录多文件版本了,通过Git命令可以将所有版本保存在 .git 文件中,两条命令创建一个版本

    3、git status 

      

      由于之前生成了个.git 隐藏文件夹,可以通过该命令来查看该文件夹的状态,如果项目文件代码被修改就会呈现红色字段,表示那个文件被修改

    4、git add .

      

      添加当前项目目录下所有的文件到版本库,这时查看.git文件夹内文件状态就是绿色可执行状态

    5、 git commit -m  "版本名称"

       

      提交到版本库,并起名版本名称,以便后期回滚    

      注意:执行git commit 命令时,可能会提示进行用户和邮箱的配置,该配置用于记录当前版本由那个用户提交

        git config --local user.name 'xuan'

        git config --local user.email 'you@example.com'

     6、命令总结

        1、Git把管理的文件分为了两个区域四个状态。

        

      2、工作区:当前开发程序所在目录称为工作区,即:工作开发程序都是在该目录,该区域的文件会有状态的变化且状态由git自动检测,如果程序中文件和文件内容做任何操作(增、删、改),文件状态均会被检测到,可以使用 【git status】命令查看。

      3、版本库:工作区检测到有文件发生变化,那么意味着较上一个版本之后对程序进行了修改,修改完成之后,可以当做下一版本进行提交,那么就是执行 【git add .】 将所有文件提交到暂存区,然后再执行【git commit -m '又一个版本名称'】提交到版本库的分支即可,之后可以使用【git log】命令查看版本记录。

      4、补充命令

        1、git init,初始化,表示即将对当前文件夹进行版本控制。  

        2、git status,查看Git当前状态,如:哪些文件或文件夹被修改过、哪些文件或文件夹还未提交到版本库等。

        3、git add 文件名,将指定文件添加到版本库的暂存状态(*代表当前文件夹内的所有文件,.代表当前文件夹)。

        4、git commit -m '提交信息',将暂存区的文件提交到版本库的分支。

        5、git log,查看提交记录,即:历史版本记录

三、git事物回滚方法

  1、git reset --hard  版本号

    

    通过该命令可以直接回滚到指定的程序版本,但是在此之间的版本信息就会被删除。

  2、git reflog

    

      

    可以通过git reflog来查看被删除了的版本信息,并且可以通过git reset --hard  uuid号的方式来恢复到被删除版本的当前位置

  3、git stash

     

    stash用于将工作区发生变化的所有文件获取临时存储在“某个地方”,将工作区还原当前版本未操作前的状态;stash还可以将临时存储在“某个地方”的文件再次拿回到工作区。说白了就是版本1之后的代码ok版本1之前的代码出现bug,就可以将版本1之后的代码先暂存在某个地方,然后恢复到版本1初始状态,修改完bug后再把版本1的程序重新git add . git commit -m 下最后吧版本1暂存的代码恢复回来

  4、git stash pop 

      

    该命令是将程序暂存在某地的代码恢复回来继续开发但是当执行 git stash pop 命令时,可能会遇到冲突,因为在紧急修复bug的代码和通过stash存储在“某个地方”的代码会有重合部分,所以执行 git stash pop 时候就会出现冲突,有冲突解决冲突即可。而冲突区域git会显示处理冲突文件,冲突文件内的冲突代码也会显示出来,改就是了

  5、git回滚命令总结

    

    git stash                  将当前工作区所有修改过的内容存储到“某个地方”,将工作区还原到当前版本未修改过的状态

    git stash pop           将第一个记录从“某个地方”重新拿到工作区(可能有冲突)

    git stash apply         编号, 将指定编号记录从“某个地方”重新拿到工作区(可能有冲突)

    git stash list             查看“某个地方”存储的所有记录,因为一个git可能会多次stash     

    git stash clear           清空“某个地方”,可以一次性清除多个stash  

    git stash drop      版本号   删除指定版本号的记录

    git reset 文件名                    将版本分支文件覆盖到版本暂存区文件

四、撤销修改

  使用“git checkout -- 文件名”回复至版本库缓存区当前内容,再次查看文件内容,可以发现修改的内容已经被撤销。

  注:撤销只能撤销更改后未提交到缓存区的内容。如果已经提交到缓存区或者commit,可以使用版本回复功能。

 五、补充命令

  1、git config --list        罗列出git的所有配置

  2、git init                      创建repository

  3、git status              检测当前文件状态(如果有文件被修改会显示红色)

  4、git diff                    检测发生变化的文件具体的变化详情,检测的是工作区的文件和版本库暂存区文件发生的详细变化

  5、git diff --stat            检测工作区文件和版本暂存区文件发生变化的笼统信息

  5、git ditt --staged      检测版本暂存区文件和版本分支文件的发生变化的详细信息

  6、git diff HEAD         检测工作区文件和版本分支文件发生变化的详细信息

  7、git diff --stat HEAD  检测工作区文件和版本分支文件发生变化的笼统信息

  4、git add .              (提交当前文件到版本库暂存区,红色文件变为绿色文件)

  5、git commit -m '提交信息',将暂存区的文件提交到版本库的分支

六、补充知识

  1、全局配置git-----用户名和邮件以及git显示的颜色(使用git config --global命令实际上是在操作git的配置文件,home目录下的gitconfig文件,也可以对这个文件进行直接修改)

    

  2、忽略以~结尾的文件

  3、git status -s  表示简洁的查看当前文件状态 ,文件前面一共两个标志位,第二个标志位表示工作区文件有没发生变化,第一个标志位表示版本暂存区文件有没发生变化

 七、get pull从git上拉代码到本地发生冲突时

    1、先 git add . 和git commit 将需要git的代码上传到本地版本库
    2、git pull发生冲突了,
    3、先用git stash命令把当前修改过的工作存储到栈里面,此时代码还原到了未修改时的样子
    4、再git pull拉取代码.
    5、再git stash pop 或者 git stash apply把栈里面的代码还原,这时如果再冲突,需要手动解决.

    6、可以用git stash list来看存了哪些版本,代码还原后,可以用git stash clear来清空栈里面的代码

    注释:但是多次git stash,栈里面会有很多未提交的代码

      如果想找回第1个,可以用 git stash pop

      如果想删除一个stash,git stash drop <id>

      删除所有stash,git stash clear

    

原文地址:https://www.cnblogs.com/xuanan/p/7631560.html