Git的作用和常用git命令

Git是一个版本管理工具,它的作用是:

      1、一般用来管理代码,也支持管理纯文本文件,如txt、word等。

      2、可以在同一个目录中保存N个版本,想切换到哪个版本都可以。

      3、可以方便地查看以前的修改记录,了解每个版本具体修改了哪些内容。

      4、方便日常的编辑工作,查看当前修改了哪些文件、具体修改了哪些内容。

      5、允许建立多个分支,可以根据不同需求在某个版本的基础上建立新的分支。

      6、支持多人协作,允许多个人共同维护一个代码工程。

 

本文内容的思维导图:

 

一、如何建立一个本地git仓库

       a、用下面这几个命令可以新建一个本地git仓库:

             git init

             git add

             git status

             git commit

   

        b、下面是在windows系统的Git Bash中操作举例:

 

        c、Windows版本git的下载地址:

             https://gitforwindows.org/

 

二、如何克隆一个远程仓库和检出远程分支

       a、克隆局域网中的一个远程仓库,并且检出远程分支:

             命令是: git clone远程仓库地址  

                          git checkout -b 远程分支名 origin/远程分支名

   

        b、新建一个本地分支,并且推送到远程仓库  

 

        c、如何在局域网中建立一个git远程仓库:

             1、用一台电脑作为代码服务器,进入代码工程目录中,建一个本地git仓库,提交一个初始版本(默认只有master分支)。

             2、把代码工程目录设置为共享,根据需要是否设置访问的账号密码。

             3、假如是linux系统,需要安装配置ssh和samba,这样别人才能访问你的共享。

 

三、工作中用得比较多的命令(下面有具体说明)

        git status                    #查看当前工作区域的状态

        git log                         #查看提交记录(或者说查看提交了哪些版本)

        git diff                         #查看具体修改了哪些内容

        git add                        #将已经修改的文件添加到暂存区

        git commit                 #将已添加到暂存区的文件提交到本地git仓库

        git branch                  #查看、新建、删除分支

        git checkout              #切换分支或者还原文件

        git pull                       #将远程的代码拉到本地

        git push                     #将本地的提交推送到远程仓库

        git reset                     #回退版本(切换版本)或者还原某个文件

        git init                         #新建git仓库

        git clone                     #克隆一个git仓库,把远程代码仓库复制到当前目录

        git config                    #查看或修改git配置

        git show                     #查看某个提交具体修改了哪些内容

        git whatchanged        #查看某个提交具体修改了哪些文件

        git cherry-pick          #将其它分支的某个提交合并到当前分支

        git reflog                     #查看所有版本切换(改变git指针)的历史操作记录

 

具体介绍:

1、git clone

      克隆远程服务器上的git仓库到自己的电脑中,或者复制一个本地电脑中的git仓库到当前目录。

      克隆局域网中远程服务器的git仓库例子:

      Linux:       git clone ubuntu@192.168.1.100:/home/android/code/test

      windows:  git clone //192.168.1.100/code/test

 

      克隆同一台电脑中其它目录的git仓库例子:

      git clone /home/android/code/test

 

2、git init

      这个命令用来新建一个本地的git仓库,假如自己有一份代码工程,想用git来管理,可以用这个命令来新建git仓库。

      执行git init之后,在当前目录会生成一个.git目录(这是个隐藏目录),里面包含git仓库和暂存区。使用git clone获

      取的代码已经包含git仓库不需要再执行git init。

 

3、git config

      电脑中新安装git工具之后,想要继续使用git功能,一般会提示设置用户名和邮箱,或者你想修改也是用下面的命令。

      git config --global user.name "yourname"

      git config --global user.email yourname@example.com

  

      查看当前的git配置:

      git config --list

 

4、git status  

      这个命令用来查看本地工作区和暂存区的状态,例如有哪些文件是被修改过、哪些文件是新增加的、哪些文件已经添加到暂存

      区等。简单的理解,工作区就是当前代码工程中除.git以外的所有目录;暂存区就是执行git add之后那些文件所处的临时区域。

 

5、git log  

      a、命令后面不跟任何参数,表示查看当前分支的所有提交记录信息,包括commit ID、用户名、邮箱地址、提交时间、提交描述。

 

      b、查看最新的N个提交记录,例如查看最后的3个提交记录。

            git log -3

 

      c、假如git log后面跟着路径,则只是查看这个目录或者文件的提交记录信息。

 

      d、简洁地查看以前所有的提交记录,每行只包含commit ID和提交记录说明。

            git log --oneline

 

      e、只查看某个人的提交记录

           git log --oneline --author=name

 

6、git branch  

      举个例子说明分支的作用,假设某个项目有多个客户,个别客户有些特殊的定制,这个时候就可以在主分支基础上新建特殊

      分支。或者有时候你想尝试修改验证某个复杂的功能,这时可以新建临时分支,验证OK后再把提交合入主分支。

  

      a、命令后面不加参数表示查看本地所有的分支和当前是哪条分支(前面带*号的就是当前分支)。

      

      b、查看所有的本地分支和远程分支。

            git branch -a

      

      c、命令后面跟着普通字符串,表示在当前版本的基础上新建一个分支。

           git branch 新分支名称

     

      d、删除一个本地分支。

           git branch -D 分支名

 

7、git checkout  

      a、后面跟分支名,表示切换分支。先用git branch查看本地有哪些分支,然后再用git checkout切换到其它分支。

           git checkout TEST-DEV

     

      b、后面跟文件名或者目录,表示把这个文件或者目录的修改还原,有时候某个文件被删除了,可以用这个命令还原回来。

     

      c、检出一个远程的分支到本地。先用git branch –a查看有哪些远程分支,然后再用git checkout –b命令。

            git checkout -b 远程分支名 origin/远程分支名

            git checkout -b TEST-DEV origin/TEST-DEV

 

8、git diff  

      a、用来查看工作区中具体修改了哪些内容,有时候命令后面跟着目录或文件名,表示只查看这个目录或者文件修改了哪些内容。

           git diff kernel-3.18/

     

     b、对于已经添加到暂存区里面的文件,直接执行git diff不起作用,要在命令后面加--cached

           git diff --cached

  

     c、查看两个提交记录之间的差异

           git diff 3886f6a 9fd0f09

 

9、git add  

      a、命令后面跟着路径,表示把这个路径中修改的内容添加到暂存区。执行git status命令后,Changes to be committed: 下面的

           那些文件就是处于暂存区。

            git add kernel-3.18/

     

      b、有时候目录里面有一些特殊的文件(如隐藏文件),如果git add添加不成功,可以增加-A参数。或者有时候删除了某个文件,

            需要 git add –A 这个文件所在的目录,才能把这个删除操作添加到暂存区。

           git add -A kernel-3.18/

 

10、git commit  

        a、把暂存区里面的内容(也就是已经git add的内容)提交到本地git仓库中,一般提交之前git status检查一下。

              git commit -m “提交信息说明”

  

        b、修改最后一次提交的提交信息说明

              git commit --amend –m “新的提交信息说明”

 

11、git pull  

       把远程分支的代码拉下来,使当前分支的代码同步到最新。建议修改代码或commit提交之前,多执行这个命令。有时候会有

       冲突,自己根据情况修改好。

 

12、git push  

       把本地已经commi的提交记录推送到远程仓库,新建远程分支也是用到这个命令。

       git push origin 远程分支名

 

13、git reset  

       a、命令后面直接跟着某个提交ID,表示还原到以前的某个版本,这两个版本间的差异会还原到工作区中,可以git status看一下。

            git reset 949e8f43

     

       b、干净地还原到以前的某个提交(注意:当前工作区和暂存区的临时修改内容都会被清除掉),命令后面跟着 --hard,执行

             git status后查看,工作区是干净的。

             git reset --hard 949e8f434

     

       c、把暂存区的某个文件还原到工作区,临时修改的内容还在。可以git status 和git diff查看一下。

            git reset 暂存区的某个文件名

 

14、git show  

       a、查看某个提交具体改了哪些内容

            git show 提交ID

  

       b、查看某个提交的某个文件具体改了哪些内容

            git show 提交ID 文件的路径

 

15、git whatchanged  

        查看某个提交修改了哪些文件

        git whatchanged 提交ID -1

 

16、git cherry-pick   

       把其它分支的某个提交合并到当前分支

       git cherry-pick 提交ID

 

17、git reflog

       使用这个命令可以查看所有涉及到版本切换(改变git指针)的历史操作记录,有时候执行git reset --hard命令后反悔了,

       但是git log中找不到上一个最新版本的commit ID,这时可以在git reflog中找到。

 

 

四、其它的一些git用法:

      1、把单个文件回退旧的到某个版本

      2、生成patch和使用patch简单说明

      3、删除远程分支、清理本地无效的远程追踪分支

      4、设置git diff时显示的tab缩进为4个空格长度

      5、忽略特殊文件或目录

 

1、把单个文件回退到旧的某个版本

     git reset 提交的ID 文件名

     git checkout 该文件名

     git reset 该文件名

 

2、生成patch和使用patch简单说明  

      a、先查看提交记录,使用git format-patch命令生成patch。

          命令格式是: git format-patch 旧一点的提交..新一点的提交

         

     

     b、进入需要打patch的代码工程,git am该补丁文件(下面是在另外一个分支演示合入操作),假如使用git apply命令

          则只合入修改内容但不提交。     

         

      

         

 

3、删除远程分支、清理本地无效的远程追踪分支

     删除远程分支:

     git push origin –delete 分支名   或者  git push origin :分支名

 

     如果在远程仓库中删除了某一分支,而git branch -a 后在remotes/origin位置还能看到,那么删除本地的远程追踪分支命令是:

     git remote prune origin

 

4、设置git diff时显示的tab缩进为4个空格长度   

      git config --global core.pager 'less -x1,5'

 

5、忽略特殊文件或目录   

      有时候一些编译出来的临时文件或者某些特殊文件,不想让git追踪它或者说让执行git命令时忽略它们,处理方法是在工作区

      新建.gitignore文件,然后打开.gitignore文件输入需要忽略的目录或者文件类型,例如忽略out目录和下面两种后缀的文件。

      记得把这个.gitignore文件也提交。

 

       out

      *.tmp

      *.log

 

 

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值