Git基本命令行操作

Git基本命令行操作

      • 本地仓库创建
      • 配置相关信息
      • 检查版本状态
      • 提交版本(本地仓库)
      • 忽略和排除
      • 日志
      • 标签
      • 分支操作
      • 回退
      • 远程仓库


Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。其特点如下:

  • git每台电脑都有一个版本库,可以在本地做版本管理;
  • 速度快,git的速度远超大部分版本管理系统,包括svn
  • 强大的分支管理功能
  • 活跃的开源社区,如最著名的github

Git基本命令行操作_第1张图片



首先我们来了解Git的安装,安装包下载地址:https://git-scm.com/downloads 下载对应版本,然后直接安装即可。


使用Git之前我们需要来了解一下Git Flow,其可以用来规范团队Git操作,让整个项目有一个清晰的流程和规范。
Git基本命令行操作_第2张图片

  • Master分支
    Master分支,这个分支只能从其他分支合并,不能在这个分支直接修改

  • Develop分支
    这个分支是我们是我们的主开发分支,包含所有要发布到下一个Release的代码,这个主要合并与其他分支,比如Feature分支

  • Feature分支
    这个分支主要是用来开发一个新的功能,一旦开发完成,我们合并回Develop分支进入下一个Release

  • Release分支
    当你需要一个发布一个新Release的时候,我们基于Develop分支创建一个Release分支,完成Release后,我们合并到Master和Develop分支

  • Hotfix分支
    当我们在Production发现新的Bug时候,我们需要创建一个Hotfix, 完成Hotfix后,我们合并回Master和Develop分支,所以Hotfix的改动会进入下一个Release




本地仓库创建

首先我们在本地新建一个项目,然后我们就可以执行git init命令,来让git开始管理这个文件夹,在同级目录下会出现一个隐藏的 .git 文件。
Git基本命令行操作_第3张图片
Git基本命令行操作_第4张图片




配置相关信息

因为git是分布式版本控制系统,所以需要填写用户名和邮箱作为一个标识。

注意: git config -–global参数,表示这台机器上的所有的git仓库都会使用这个配置,当然也可对某个仓库指定不同的用户名和邮箱,更多参数我们也可以通过 git config 提示查看,如下:
Git基本命令行操作_第5张图片


这里我们配置如下:
Git基本命令行操作_第6张图片
一般Git的配置会有三级,首先会在当前项目的路径下找,未找到则在当前用户配置下查找,最后在Git的安装目录下进查找,如下:

  • .git/config
  • 当前用户目录/.gitconfig
  • git安装目录/etc/gitconfig



检查版本状态

在提交相关代码时,我们可以先使用 git status 来查看下当前的状态,下面就会提示我们当前一些文件状态,如下:
Git基本命令行操作_第7张图片

  • 被追踪的(tracked): 已经加入文档库
  • 不被追踪的(untracked): 没有加入文档库
  • 忽略的(ignored): 忽略那些不需要管理的文件夹或文件



提交版本(本地仓库)

提交本地仓库可以两个步骤,也可以一个步骤

  • 两步操作
    git add filename ,该命令其实是将文件提交到本地的暂存区,这里参数可以是文件路径,也可以是 . ,或者 -A ,那么这两个参数有什么区别呢?

    • . 代表所有新增、修改文件,不包括删除文件
    • -A 代表新增、修改、删除文件


    在执行完gti add后,我们还需要执行 git commit 命令,来将暂存区的文件提交到本地仓库,一般我们会加下-m来添加相关版本描述


  • 一步操作
    如果觉得上述的命令太过于麻烦,我们还可以执行命令 git commit -Am '版本描述' ,直接将文件提交到本地仓库。

执行了上述的命令后,我们在执行git status,就会发现已经没有文件需要提交了,如下:
Git基本命令行操作_第8张图片




忽略和排除

上述提到git管理的几类文件中,其中有一个忽略的文件,这个是指有一些我们不希望传到Git上进行管理的文件,如 .idea 、target文件下的文件,这些文件通常是不需要的,但是在上述提交版本的阶段,我们会发现这些都被上传了上去,如下:
Git基本命令行操作_第9张图片

那么这里我们就想要将其忽略,所以就需要需要目录下建立一个.gitignore文件(可以有多个,影响范围当前文件及子文件),如下:
Git基本命令行操作_第10张图片
Git基本命令行操作_第11张图片


忽略文件设置好后,那么我们该如何使用它,来将之前的已经将入本地仓库的文件撤回呢?这里可以使用 git rm -r --cached . ,如下:
Git基本命令行操作_第12张图片

然后我们在执行git status ,就会发现我们相关文件已经被过滤了,这时我们在重复上述的git addgit commit等命令重新提交即可。




日志

提交后,我们可以使用 git log 命令来查看日志,如下:
Git基本命令行操作_第13张图片

另外我们还可以执行如下命令进行查看日志:

  • git log --oneline        简化成一行
  • git log --oneline --graph     简化成一行,同时显示分支



标签

一般来说,我们在git版本提交的时候肯定会携带版本说明,比如该提交主要完成了什么功能,或者修复了什么bug之类的,当时有时我们还会给相关的关键提交使用 git tag -a ... xxxxxxx(提交点SHA1的ID的前7位) 打上标签
Git基本命令行操作_第14张图片

然后需要我们输入相关的信息,如下,然后输入 wq 进行保存即可
Git基本命令行操作_第15张图片




分支操作

分支意味着你可以从开发主线(master)上分离开,在不影响主线的同时继续工作。

  • 创建分支
    git branch      列出当前开发所有分支(默认会有master)
    git branch bxs       创建一个bxs的分支(最新提交点)
    git branch bxs 提交点    创建一个bxs的分支(指定提交点)

  • 删除分支
    git branch -d bxs    删除bxs分支

  • 切换分支
    git checkout bxs    切换至bxs分支

  • 合并分支
    git checkout master    先切换这需要合并后的分支
    git merge bxs       合并分支bxs至主干master,合并后的提交点属于主干master

    (其实合并分支处理git merge xxx命令,还可以通过git rabase xxx来合并,不过一般不推荐使用该命令来合并分支,因为该命令合并分支后,是默认git log查找不到的,需要使用git reflog进行查看)




回退

git reset 选项 提交点    (选项:–hard表示全恢复; 提交点:可用ID或标签)
Git基本命令行操作_第16张图片


从上述看出,我们回退版本后,再次执行git log相关命令就会发现,回退之前的都不见了,但是要是万一我们又不想回退了怎么办呢?


这里其实我们再次回退就可以了,唯一的问题就是我们用上述命令查不到响应的提交点了,这里我们就需要使用 git reflog 命令,通过此命令可以查找到所有操作的提交点
Git基本命令行操作_第17张图片




远程仓库

这里首先需要去GitHub或者Gitee上注册一个账号,然后我们再在其中新建一个仓库demo,然后我们就可以获得相关的提示,然后我们就在远程仓库上新建一个master分支,如下:
Git基本命令行操作_第18张图片
Git基本命令行操作_第19张图片


远程创建完成后,我们就可以本地仓库的master分支上的代码提交到远程仓库的上,如下:(第一次会要求我们输入账号密码进行登录)
Git基本命令行操作_第20张图片


上述在我们将代码推到远程仓库之后,别人就来进行拉取我们的代码了,比如这里我们在另一个目录下,就可以使用 git clone 远程地址 本地文件路径 来clone一份新的项目代码。


另外我们还可以在本地拉取远程仓库中的修改,如下:

  • fetch    是将远程主机的最新内容拉到本地,不进行合并,如 git fetch origin master
  • pull    则是将远程主机的最新内容拉下来后直接合并 fetch+merge



另外上述我们都是使用https的方式,其实还有另一中方式ssh,使用ssh方式需要公钥和私钥,需要进行一些配置,首先需要执行 ssh-keygen -t rsa -C 注册邮箱 ,然后会在本地的相应位置(命令执行会提示的)生成相应的公钥和私钥,然后将其公钥需要在GitHub的Setting进行配置。

你可能感兴趣的:(Git)