跳到主要内容

2. Git基础操作

- · -

上节教程我们介绍了在 MacOS、Windows 和 Linux 系统中 Git 的安装方式,本节开始将开始 Git 使用方面的教程。

本节说明

本节涉及到的命令只讲基础使用方法,更多高级用法请期待后续的高阶操作。


初次使用 Git 前的配置

我们已经在电脑上安装了 git,但在使用 git 之前还需要对 git 进行一番配置。本节只讲最基础的配置项,配置用户名和邮箱,更多高级配置项目会在后续的高阶操作中讲到。

使用下面的命令可以查看当前配置:

git config --list

执行上面的命令后会输出如下图所示的配置项

Git配置项输出

图中 user.name 是用户名(一般是你在 git 服务器中的用户名), user.email 是用户邮箱(一般是你的工作邮箱)。

使用下面的命令可以修改这两个配置项:

# 用法
git config 配置项名称 配置项值
sudo git config --system 配置项名称 配置项值
git config --global 配置项名称 配置项值
git config --local 配置项名称 配置项值

在配置 system 级别的配置项时如果当前登录用户不是 root 用户的话,需要使用 sudo 才能配置成功。

  • --local 表示配置是在当前目录所对应的仓库中生效,如果不加参数默认就是这个
  • --global 表示配置是在当前用户的所有仓库中生效
  • --system 表示配置是在当前操作系统中全局生效

如果各个层级的配置中有相同的配置项,生效的顺序为 local -> global -> system ,低级可以覆盖高级的。

获取仓库

获取仓库的方式一般有两种方式:

  1. 本地使用 git init 命令初始化
  2. 检出一个远程仓库

本地初始化仓库

本地初始化仓库非常简单,只需要在要做为仓库的目录下执行命令 git init 就可以把当前目录初始化为一个 git 仓库。

检出一个远程仓库

一般情况下在工作中都是由项目负责人在 git 服务器上新建一个仓库,其他人再使用下面的命令在本地检出这个仓库,然后再进行开发。

git clone 远程仓库地址

查看文件状态

有了一个本地仓库以后我们就可以开始开发了,在开发时我们可以先不关心 git,像常规的文件操作一样进行文件的添加和修改就可以。

在第一节中我们讲过在 git 中文件有 3 种状态:已修改已暂存已提交

  • 已修改:表示修改了文件,但还没保存到数据库中。
  • 已暂存:表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。
  • 已提交:表示数据已经安全地保存在本地数据库中。

使用下面的命令可以看到当前仓库的文件状态:

git status

使用 git status 命令的输出十分详细,但也有些繁琐,使用下面的命令可以输入简短的状态信息:

git status --short
git status -s # -s 是--short的简写

暂存更改

在文件被添加或修改后处于已修改状态,这个时候文件的变动还未被 git 追踪,如果这个时候文件出现误删除或误改动的情况,是无法还原对文件的改动的。

使用下面的命令可以把改动暂存到 git 暂存区(索引)中:

# 用法
git add 要暂存的文件

# 暂存当前目录下的index.html文件
git add index.html
git add ./index.html

# 暂存所有js文件
git add *.js

# 暂存src目录以及所有子目录下的文件
git add src

# 暂存所有文件
# .一般用来表示当前目录,使用.做为暂存目录可以暂存当前目录下的所有文件变动
git add .

提交更改

使用 git add 暂存以后文件处于已暂存状态,已暂存的文件会包含在下次的提交中,但还未安全的保存在 git 数据库中,需要进行提交操作才能使用文件的本次变动保存到 git 数据库。

使用下面的命令可以进行提交操作:

# 用法
git commit -m 提交说明

# 提交上次暂存的文件
git commit -m 修复了xxx问题

# 自动暂存并提交索引中已存在的文件
# -a参数表示自动暂存索引中已存在的文件
# 如果一个文件是新增的还是需要使用git add命令
git commit -am 提交说明

推送更改

上面的命令把更改保存到了本地仓库的 git 数据库中,但在团队协作中还需要让你的更改在团队所有成员的代码中生效。这时就需要推送更改了。

使用下面的命令可以把本地的更改推送到服务器:

# 用法
git push

拉取新代码

把代码推送到服务器以后,同事使用下面的命令可以把你推送的代码拉取到本地。

git pull

忽略文件

一般我们总会有些文件无需纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。 通常都是些自动生成的文件,比如日志文件,或者编译过程中创建的临时文件等。 在这种情况下,我们可以创建一个名为 .gitignore 的文件,列出要忽略的文件的模式。

来看一个实际的 .gitignore 例子:

# 忽略以.log结尾的文件
*.log
# 忽略temp目录下的文件
temp/

文件 .gitignore 的格式规范如下:

  • 所有空行或者以 # 开头的行都会被 Git 忽略。
  • 可以使用标准的 glob 模式匹配,它会递归地应用在整个工作区中。
  • 匹配模式可以以(/)开头防止递归。
  • 匹配模式可以以(/)结尾指定目录。
  • 要忽略指定模式以外的文件或目录,可以在模式前加上叹号(!)取反。
该内容为何方原创,转载请注明本页地址
https://iamhefang.cn/tutorials/Git系列教程/git-tutorial-2-git-basic-operation