Git基本命令入门教程

引言

对于许多初入职场或初学Git的朋友来说,对Git的执行机制及命令操作不太熟悉。本教程帮助你快速入门Git基本命令的操作。

Git是什么?

Git是一个开源的分布式版本控制系统,版本控制是一种记录文件内容变化,以便将来查询特定版本修订情况的系统,版本控制其实最重要的是可以记录文件修改历史记录,从而让开发者能够查看历史版本,方便版本切换。

为什么要做版本控制?

如图,小红和小蓝同时从服务器下载了代码片段1的副本,然后各自做了修改并提交,那么Git就会监测内容的变化,从而将两个人修改的内容合并一块,并且记录对应版本的记录,方便回退版本,这也从个人开发过渡到了团队协作开发。

Git基本命令入门教程_第1张图片

 分布式 VS 集中式

  • 集中式

集中式如SVN、CVS都有一个单一的集中管理的服务器,保存所有文件的修订版本。如图,每个程序员修改完代码后提交到中央服务器,没有在本地(客户端)做版本控制,那么当服务器发生故障,如停电时,就无法提交代码。

Git基本命令入门教程_第2张图片


  • 分布式

分布式Git,会在本地(客户端)做版本控制,再提交到远程仓库,从而实现团队协作开发,这时远程库如果出现故障,也可以在本地做版本控制,等到故障修复,再提交代码到远程库。

Git基本命令入门教程_第3张图片

 Git工作区域

Git基本命令入门教程_第4张图片

  1.  workspace:工作区,本地项目工程目录,存放项目代码的地方;
  2. index/stage:暂存区,用于临时存放改动的文件,从而让git跟踪到文件的变化;
  3. repository:仓库区(或版本库),就是安全存放数据的位置,这里面有你提交的所有版本的数据。其中HEAD指向最新放入仓库的版本;
  4. remote:远程仓库,托管代码的服务器,可以简单的认为是你项目组中一台电脑用于远程数据交换,从而让其他团队成员都能拉取并推送修改的版本代码。

说明:这里的远程仓库一般有基于互联网的GitHub、Gitee,以及基于局域网的GitLab。

Git安装

到Git官方网站下载:Git,具体安装步骤这里不再赘述。

Git基本命令

  • 查看版本

安装完Git后,配置好环境变量,查看版本信息判断是否安装成功。

git --version
  • 配置命令:config

安装完Git后,需要配置个人用户名和邮箱,用于记录提交成员的信息。

用户名:

git config --global user.name "用户名"

邮箱:

git config --global user.email "邮箱"

查看配置信息:

git config -l
  • 初始化本地仓库

要想创建的目录被Git所管理,需要初始化对应的工程目录。进入对应的目录执行完如下命令后,会在对应目录生成一个.git文件夹,该文件夹默认是隐藏的。

git init
  • 添加代码到暂存区

将本地代码提交到暂存区,指定提交的文件名,提交该文件到暂存区。

git add 文件名

新项目中,添加所有文件很普遍,可以使用如下命令。

git add .
  • 提交代码到本地仓库

将暂存区中的所有文件提交到本地仓库。

git commit -m "注释内容"

将暂存区中的指定文件提交到本地仓库。

git commit -m "注释内容" 文件名
  • 添加并提交到本地仓库

将add和commit合为一步操作,相当于 git add .git commit -m "注释内容" 合并为一次操作,但需要注意该命令只能提交已经跟踪过且修改了的文件。

git commit -am "注释内容"
  • 查看远程仓库
git remote -v
  • 添加远程仓库

起别名方便操作,不用每次拷贝地址。

git remote add 别名 远程地址
  • 推送到远程仓库
git push 别名 本地分支名:远程分支名

如果本地分支名和远程分支名是一样的,则可以省略冒号后面的内容。

git push 别名 分支名
  • 拉取远程仓库代码
git pull 别名 远程分支名:本地分支名

如果本地分支名和远程分支名一样,则可以省略冒号后面的内容。

git pull 别名 分支名
  • 克隆远程仓库

克隆,既复制,将远程仓库中的代码复制到本地目录中。这里会有三个步骤:1、拉取代码;2、初始化本地仓库;3、创建别名。

git clone 远程仓库url
  • 查看版本状态信息

输出详细状态信息:

git status

输出简短版本状态信息:

git status -s
  • 查看日志信息

查看详细日志信息:

git log

查看简短日志信息:

git reflog
  • 显示所有在工作区做了修改但是没有添加到暂存区的变更文件信息
git diff
  • 回退到指定版本

使用 git reflog 查看版本号,就是最前面的7位黄色字体标识的序列号,复制该版本号,使用如下命令回退到该版本,并且本地代码文件也会修改为指定版本的代码,如何不加--hard就只是将HEAD指向该版本,而本地代码不做修改。

git reset --hard 版本号
  • 使用相对当前HEAD回退版本

可以使用 ~数字表示:

  • HEAD~0 表示当前版本

  • HEAD~1 上一个版本

  • HEAD~2 上上一个版本

  • 以此类推...

git reset --hard HEAD~数字
  • 删除文件

删除工作区和暂存区中的文件

git rm 文件名

删除暂存区中的文件

git rm --cached 文件名

分支

一个分支代表一条独立的开发线,使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作。

Git基本命令入门教程_第5张图片

  • 查看分支
git branch -v
  • 创建分支
git branch 分支名
  • 切换分支
git checkout 分支名
  • 合并分支

将指定分支合并到当前分支。

git merge 分支名

 冲突

合并分支时,两个分支在同一文件的同一位置有两套完全不同的修改,git无法替我们决定使用哪一个,就产生了冲突,必须人为决定新代码的内容。

当合并产生冲突时,Git会将冲突文件标识出来,冲突标志内容分为 当前分支的更改 和 其它分支的更改。

<<<<<<< HEAD  到 ======= 里面的  “内容...” 是当前分支的内容

======= 到 >>>>>>> 里面的 “内容...” 是其它分支的内容

这时需要我们手动合并代码后重新添加暂存区并提交文件到本地仓库。

git add .
git commit -m "注释内容"

但是此时注意commit时不能指定具体文件,因为在冲突期间不允许部分提交文件。

Git常用命令速查表

Git基本命令入门教程_第6张图片

你可能感兴趣的:(版本控制工具,git)