git 的使用

git 在日常开发中会经常使用到,它用于对项目进行版本控制

git 安装

  • 下载 git Windows 版

  • Power Shell (Windows 10/Windows 11)

    1
    winget install git
  • macOS (Homebrew)

    1
    brew install git
  • Debian/Ubuntu

    1
    apt-get install git

git 命令

初始化 git 仓库

创建新文件夹并进入,然后执行

1
git init

这样就可以得到一个初始化好的 git 仓库了

添加文件

初始化仓库完成以后就可以将文件添加到缓存区当中了

1
git add <file>

file 代表文件,比如在项目当中,有一个已经编辑好的文件 README.md ,现在需要将它添加到缓存区中就需要这样

1
2
3
4
5
# 目录结构
# .\
# \--- README.md

git add README.md

也可以使用下面的命令一次性添加所有文件到缓存区

1
git add *

提交文件

添加完需要的文件到缓存区以后,就可以将缓存区内的文件进行一次性提交到仓库了

1
git commit -m <massage>

比如已经将一些修改过的代码或者新增的文件添加到了缓存区,那么就可以将它们提交到本地仓库了,不过你应该在提交时说明更改了什么内容,也就是 massage 参数

1
git commit -m "Update README.md"

提交到远程仓库

通常为了方便团队进行管理项目,或者是方便在不同的地方进行开发,可以将代码放到远程仓库中

设置 commiter 信息

1
2
git config --global user.name <username>
git config --global user.email <email>

username 是用户名,email 是邮箱,需要都设置成所注册的平台的信息,如 GitHubgitee

1
2
git config --global user.name "XXX"
git config --global user.email "XXX@XX.com"

连接远程仓库

设置好自己的 commiter 信息以后就可以开始创建远程仓库并提交了

1
git remote add <remote> <server>

remote 是指远程仓库的别名,通常叫 originserver 代表远程仓库的地址

1
git remote add origin xxx.com/username/xxx.git 

推送到远程仓库

接下来就可以将代码推送了

1
git push <remote> <branch>

branch 是指你的代码分支,是用来隔离开每个版本之间的差异的,第一次推送的分支需要标明,之后就可以省略了

1
2
git push origin master	# 第一次推送
git push origin # 非第一次推送

分支

接下来就讲讲关于分支的操作

创建分支

为了将每个版本或者特性的代码隔离开来,需要创建不同的分支

1
git branch <branch>

branch 是分支名,需要为分支起一个名字

1
git branch xxx

检查分支

检查本地分支,通常在创建仓库时会默认生成一个 master 分支

1
2
3
4
5
git branch

# 输出
# * master
# xxx

前面有个 * 表示当前分支

检查所有分支,就是包括本地和远程的所有分支

1
2
3
4
5
6
7
git branch -a

# 输出
# * master
# xxx
# remotes/origin/HEAD -> origin/master
# remotes/origin/master

带有 remotes/origin 前缀的是远程分支,其中 HEAD 表示默认分支

切换分支

切换到想要的分支

1
git checkout <branch>

还记得前的创建分支吗,其实你可以在创建的同时切换分支

1
git checkout -b <branch>

更新与合并

在多人开发时,可能别人已经提交了新的代码,所以原则上应该在推送前,将远程的最新改动与本地同步一下,就像这样

1
git pull

在代码写完并经过 review 之后,就可以将两个分支的代码进行合并了

1
git merge <branch>

这样就可以将当前分支与目标分支进行合并了

通常情况下,代码会自动合并,但也可能合并失败,所以应该先检查一下代码的差异

1
git diff <source_branch> <target_branch>

source_branch 是你需要合并的分支,target_branch 是目标分支

参考自以下内容

git - 简明指南: http://rogerdudler.github.io/git-guide/index.zh.html