3.工作中常使用的 git 命令开发流程
1、克隆项目,git clone 远程仓库地址
- 当克隆的是
Clone with HTTP
需要输入 git 所使用的服务的邮箱和密码
git clone http://172.27.8.191/test.git
- 如果克隆的是
Clone with SSH
(秘钥),就不再需要下次再用时还输入邮箱和密码
git clone git@172.27.8.191:test.git
2、切换分支,git checkout xxx
当完成克隆项目后,一般都是克隆的maste
或main
分支 这是生产环境的主分支,一般情况下是需要经过测试通过后才进行发版所使用的环境,所以研发人员在克隆后需要切换新的分支来进行代码修改
- 当
feature/xxx
分支不存在时,需要通过-b
来创建一个新的分支然后再切换
git checkout -b feature/xxx
- 如果
feature/xxx
分支存在时,可直接进行分支切换
git checkout feature/xxx
3、将更改的文件添加到暂存区,git add
- 添加所有更改的文件
git add .
- 将当前目录及其子目录下所有更改的文件添加到暂存区
git add -A
- 添加指定文件,也可以添加多个文件
git add xxx
git add xxx1 xxx2
4、将暂存区(staging area)的文件提交到仓库中
git commit -m "xxx"
5、将本地仓库的更改推送到远程仓库,git push
- 推送到默认远程仓库的当前分支
git push
- 推送到指定远程仓库的指定分支
xxx
git push origin xxx
- 若还没有设置远程仓库
abc
时,推送执行
git remote add origin abc
- 推送到一个新的远程分支,并且希望设置本地分支跟踪这个远程分支
git push -u origin xxx
6、下拉dev
分支,工作流中更新和合并分支。git pull
当新分支内容修改完并推送时,我们需要切换到 dev 分支合并新分支修改的内容,故需要先进去下拉获取远程仓库 dev 分支的最新代码
- 下拉
dev
分支,合并
git checkout dev
git fetch orgin dev
git merge origin/dev
git pull
下拉合并获取分支最新代码
git fetch orgin dev
和git merge origin/dev
等同于git pull
命令,所以可以执行
git checkout dev
git pull
7、解决合并冲突,dev 分支合并feature/xxx
分支代码修改的内容
git merge feature/xxx
- 解决合并冲突方式一
这时会在暂存区看到修改的代码内容,与 dev 分支进行比较,可以借助 git 等可视化工具查看,如没有异议后,可以在vscode源代码管理
填写提交信息
进行保存
,会保存在本地仓库里,所以还需要在进行提交
一下,这是才正真提交到远程仓库里
- 解决合并冲突方式二
git commit -m "提交信息"
git push origin dev
8、打包代码
如果还需要更新版本问题,一般会在脚手架如vue.config.js
里 verson 进行大一点的版本号。如 1.1.0.11
-》 1.1.0.12
。然后打包到测试环境 rpdt,通常会是
npm run build:rpdt
9、部署到测试环境专用的服务器上
可使用的一些部署服务器的工具
Xshell
,FileZilla Client
,Apifox
发版用的一些工具
Jenkins
然后进行测试文档自测,自测完结果后交于测试员再测,再通过后由测试专员进行发版到 rpt
上
常使用的 git 仓库
gitLab
,gittee
,github
10、git stash 临时存储你的工作进度,而不提交这些更改
应用场景:当不小心在 master 或 dev 分支上直接更改时,此时应在其他分支上修改的,此时可以使用git stash
命令将当前分支上的修改内容临时存储起来,然后切换到其他分支上,再使用git stash pop
命令将存储的内容恢复到当前分支上。
- 临时存储当前分支的修改内容
git stash
# 或者带消息保存工作进度
git stash save "Your message here"
- 列出所有的 stash
git stash list
- 恢复存储的内容到当前分支
git stash pop
11、git status 查看本地修改内容和暂存去信息
12、git reset 重置当前分支到指定的状态,可以用于撤销提交、回退
- 撤销最新的提交,但不删除那些更改(即保持工作目录中的更改)
git reset --soft HEAD~1
- 撤销最新的提交(更改回到暂存区)
git reset --mixed HEAD~1
- 撤销最新的提交(完全撤销)
git reset --hard HEAD~1
- 回退到特定的提交,当前分支回退到历史中的某个特定提交
git reset --hard <commit-hash>
- 撤销对文件的暂存
git reset HEAD <file-path>
13、git remote 显示远程仓库的状态
- 查看远程仓库列表
git remote -v
- 添加远程仓库
git remote add <remote> <url>
- 重命名远程仓库
git remote rename <old> <new>
- 删除远程仓库
git remote remove <remote>