Git使用 (本地)

初始化设置

Git是分布式版本控制系统,因此每个机器机器都必须自报家门:你的名字Email地址

在命令行输入:

1
2
git config --global user.name "Your Name"
git config --global user.email "email@example.com"

PS:git config命令的--global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。

初始化仓库

在空的目录下,通过git init命令把这个目录变成Git可以管理的仓库

1
git init

运行成功后可以发现当前目录下多了一个.git的目录,这个目录是Git来跟踪管理版本库的,切勿随意修改破坏Git仓库。

添加文件到仓库

使用git命令将文本添加到版本库中

1
2
git add <文件名 + 后缀名>	   # 添加单个文件
git add . # 添加目录下的所有文件

执行上面的命令,没有任何显示,这就对了,Unix的哲学是“没有消息就是好消息”,说明添加成功。

把文件提交到本地仓库

1
git commit -m "wrote a readme file"

后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的,这样你就能从历史记录里方便地找到改动记录。

PS:在执行 commit 之前,都先执行一下 add 操作,避免有文件被漏掉了

查看版本库状态

1
git status 		# 查看当前git版本库的状态(查看缓存区中的文件内容)

提交日志

版本控制系统肯定有某个命令可以告诉我们历史记录,在Git中,我们用git log命令查看:

1
git log

格式化日志,只显示主要的日志信息

1
git log --pretty=oneline

查看差异

1
git diff 		# 查看不同版本之间的文件差异

版本回退

首先,Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^

1
2
git reset --hard HEAD^			# 把当前版本回退到上一个版本
git reset --hard <commit id> # 回到指定版本

撤销修改

1
git checkout -- filename		# 让这个文件回到最近一次 git commit 或 git add 时的状态

PS:git checkout -- file 命令中的 -- 很重要,没有 -- ,就变成了“切换到另一个分支”的命令

删除文件

1
git rm <文件名 + 后缀名>

这个时候,Git知道你删除了文件,因此,工作区和版本库就不一致了,git status命令会立刻告诉你哪些文件被删除了

删除完成后需要 commit

如果删除了想恢复,可以使用 reset 版本恢复

分支管理

1
2
3
4
5
6
git branch				# 查看分支
git branch <name> # 创建分支
git checkout <name> # 切换分支
git checkout -b <name> # 创建 + 切换分支
git merge <name> # 将某分支合并到当前分支
git branch -d <name> # 删除分支

git 文件冲突分支1中有个文件跟其他分支文件一样,如果同时发生修改了,进行合并,就出现文件冲突问题。

PS:在git中进行 crud 操作时都需要执行 git add 文件这个操作,底层操作将操作文件添加一个叫缓存区区域中缓存,当操作完毕之后,使用 git commit 操作,进行统一提交,将编辑文件统一同步版本中。

远程仓库

创建仓库步骤:

1:初始化本地的仓库

1
git init

2:设置码云的用户名跟码云注册邮箱

1
2
git config --global user.name "码云里面用户名"
git config --global user.email "码云里面注册邮箱/手机"

3:配置忽略提交的文件.gitignore

4: 将项目添加到本地仓库

1
2
git add .
git commit -m "项目初始化"

5:配置远程仓库请求路径

1
git remote add origin 自己创建仓库路径

6:将本地仓库中项目推送到远程仓库

1
git push -u origin master

7: 弹出一个框, 输入账号与密码

8:将远程仓库中项目拉到本地仓库中

1
git pull

开发中使用 Git (IDEA)

在 Idea 中克隆远程仓库

打开 Idea,在初始化界面克隆远程仓库

以上步骤就可以将项目从远程导入到 Idea 了

在成功导入项目以后,如果 idea 右上角弹出一个提示框,里面有 Add root 的字眼,直接点击即可,代表让 idea 识别这是一个 git 项目。

PS:需要注意的是,在微服务开发或者按模块开发的情况下,因为一个仓库下可能包含多个项目文件,因此建议使用命令 git clone 先将远程仓库克隆到本地,然后再将仓库中的项目一个个导入到 idea

分支切换与合并

在 idea 中,分支的相关操作都在 idea 项目界面的右下角最角落的位置,你可以通过这边去新建本地分支/切换本地或远程分支,创建/删除/合并分支等等操作

Snipaste_2021-11-22_22-11-17

Snipaste_2021-11-22_22-13-48

分支创建成功后,会自动将之前(master)所在分支的文件同步到新创建的分支上,此时新创建的分支与原来的分支文件内容是一致的,你可以直接从当前分支切换到某一个分支,也可以去选择将哪一个分支合并到当前分支

Snipaste_2021-11-22_22-15-33

文件新增编辑和删除

在 idea 中,使用不同的颜色来标识文件的不同状态。

棕色色代表未被 Git 管理(未添加到暂存区)

绿色代表新增的文件且已经被加入到暂存区了

蓝色代表该文件已经提交到远程且该文件被编辑过了

黑色代表该文件在当前版本与远程是一致的

灰色表示该文件之前被提交到仓库过(不管是远程还是本地),但是他已经被删除了

红色表示该文件的内容出现了冲突

创建新文件时,idea 会弹出一个提示框,确认是否要添加到 git 暂存区,如果此时点击 No 的话,该文件就不会被添加到暂存区,且颜色为棕红色,添加完成后,文件会由棕色变为绿色,此时对一个远程的文件进行了更新,那么他就会从黑色变为蓝色

当你开发完成以后,可以进行提交

团队开发注意事项

  1. 组员每次开发,都先 push 到自己的远程分支
  2. 每次对 master 分支做合并或推送之前,原地备份代码
  3. 确保自己分支的代码与 master 分支都没有错误以后,将本地 master 推送到远程
  4. 开发前,先切换到 master 分支,更新代码,确保是最新版本,如果有更新下来内容,同样先对整个项目进行备份,再切换到自己的分支,然后将 master 合并到自己的分支上
  5. 除了将代码提交到自己的分支以外,都必须再将自己的代码合并到master
  6. 再次强调,每次合并或推送前,都先对项目进行备份,避免操作不熟练导致出错后代码丢失