git

本文最后更新于 2024年9月18日 晚上

Git Flow 的常用分支

生产分支(master)‌

Master分支是仓库的主分支,这个分支包含最近发布到生产环境的代码,最近发布的Release, 这个分支只能从其他分支合并,不能在这个分支直接修改‌

补丁分支(hotfix)

当我们在生产环境发现新的Bug时候,我们需要基于master分支创建一个Hotfix分支,然后在Hotfix分支上修复bug,完成Hotfix后,我们要把hotfix分支合并回Master和Develop分支‌

发布分支(release)‌

当你需要发布一个新功能的时候,要基于Develop分支创建一个Release分支,在Release分支测试并修复bug,完成release后,把release合并到master和develop分支‌ ## 开发分支(develop)‌

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

功能分支(feature)‌

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

文件

这里一部分与linux终端下的命令相同。

创建文件

1
2
3
4
# 单个创建
touch File1Name File2Name
# 批量创建(touch 文件名{最小数值…最大数值}.扩展名)
touch text{ 0001..2000 }.txt

删除文件

1
2
3
4
5
6
7
8
# 删除当前文件
rm <文件名>
# 删除版本库中的文件
git rm <文件名>
# 删除文件夹(可不为空)
rm -r <目录名>
# 删除文件夹(必须为空)
rmdir <目录名>

git文件状态

显示当前状态

1
git status

加入文件到缓存区

1
git add <文件名>

将版本更迭

1
2
# -m 后面是这个版本的相关信息
git commit -m "<相关信息>"

查看日志

1
2
3
4
5
6
# 这个命令实则是git reflog show HEAD 的简化写法
git reflog
# 查看所有日志
git reflog show --all
# 查看特定的分支
git reflog show <分支名>

分支管理

创建分支命令

1
git checkout <分支名>

切换分支命令

1
2
git switch <分支名>
git checkout <分支名>

查看分支

1
git banch

合并分支

1
2
3
4
# 这里要注意在主分支
git merge <副分支名>
# 合并没有历史记录相同的分支
git merge <副分支名> --allow-unrelated-histories

删除分支

1
git branch -d <分支名>

标签管理

增加本地标签

1
2
3
4
# 不带说明的标签
git tag "<标签名>"
# 带说明的标签
git tag -a <标签名> -m "<说明信息>"

增加远程标签

1
git push origin "<标签名>"

因为这个用的少,就不深入说明了。

查看标签

1
2
3
4
# 列出所有标签(字母顺序)
git tag
# 查看标签信息
git show <标签名>

删除标签

1
git tag -d "<标签名>"

暂存栈管理

创建暂存栈

1
2
3
4
# 直接创建
git stash
# 加注释创建
git stash save "<注释>"

这个命令会将所有未递交的修改保存起来。

重新应用缓存

1
git stash pop

这个指令将缓存堆栈中的第一个stash删除,并将对应修改应用到当前的工作目录下。

查看现有stash

1
git stash list

在使用git stash apply命令时可以通过名字指定使用哪个stash,默认使用最近的stash(即stash@{0})。

移除stash

1
2
3
4
# 这里的下标是从0开始由第一个向下递增的
git stash drop stash@{<下标>}
# 利用注释删除指定栈
git stash drop "<注释>"

查看指定stash的diff

1
git stash show

版本管理

还原

1
2
3
4
# 使某个文件回到add缓存区的版本
git checkout <文件名>
# 回退指定版本
git reset [--soft | --mixed | --hard] <指定版本编号>

下面说明参数的意义:

  • --soft:将HEAD指向指定的版本上。但是工作区的文件和暂存区的文件都不改变,仅仅退回commit的信息。
  • --mixed:git reset的默认方式将HEAD指向指定的版本,同时暂存区的文件也改变,但是工作区的文件不改变。
  • --hard:彻底回退到指定的版本。

远程库(github)

创建远程仓库

1
2
3
4
5
6
# 添加远程仓库
git remote add <远程仓库名> <地址>
# 第一次推送
git push -u <远程仓库名> <地址>
# 之后推送
git push <远程仓库名> <地址>

查看远程仓库

1
git remote -v

修改远程仓库

1
git remote set-url <远程仓库名> <地址>

克隆远程库

1
2
3
4
# 克隆
git clone <地址>
# 拉取最新递交
git pull

删除远程仓库

1
git remote rm <仓库名>

初始化本地项目

1
2
3
4
git config --global user.name "<你的名字或昵称>"
git config --global user.email "<你的邮箱>"
git init
git remote add <远程仓库名> <地址>

创建分支到本地

1
git checkout -b <本地仓库名> <远程仓库名>/<分支名>

git
http://example.com/posts/43167/
作者
晓寒
发布于
2023年4月24日
许可协议