规范
本地开发分支:feature-任务编号或需求名 本地环境验证后,合并到develop分支,验证成功待大版本发版后可定期清理feature分支 开发环境分支:develop 开发环境验证完后,可合并到test分支 测试环境分支:test
gitlab拉取代码的流程/分支的管理
-
git checkout -b develop -t remotes/origin/develop —本地操作(拉取远程最新的分支)
-
git checkout develop/ git pull —本地操作(拉取最新代码)
-
git checkout -b feature-xxx-bug --本地操作(切换本次需要修改的代码)
-
git push origin feature-xxx-bug —本地操作(推送到远端)
-
fetature-lwc-bug 合到 develop — 网页操作
-
develop 合到 test —网页操作
-
发版 — 网页操作
-
git branch -d feature-xxx-bug —本地操作(删除本地分支)
-
git push origin --delete feature-xxx-bug --本地操作/网页操作(删除远程分支)
config
// 查看用户名和邮箱地址
git config user.name
git config user.email
//修改用户名和邮箱地址
git config --global user.name "username"
git config --global user.email "email"
// 版本
git --version
提交流程
// 拉取
git pull
// 状态
git status
// 添加
git add .
// 提交
git commit -m "备注"
// 推送
git push
branch
// 分支源追踪
git branch --set-upstream-to=origin/develop
// 查看分支源
git branch -vv
// 删除本地分支localBranchName
git branch -d localBranchName
// 删除当前分支外的所有分支:
git branch | xargs git branch \-d
// 执行结果: 找出所有分支中,名称含有"dev"的分支,然后删除。
git branch | grep "dev" | xargs git branch -d
// 删除分支名包含指定'dev'的分支:
git branch | grep 'dev\*' | xargs git branch \-d
// 列出本地分支
git branch
// 列出远端分支
git branch -r
// 列出本地远端所有分支
git branch -a
// 修改本地分支
git branch -m oldBranch newBranch
push
// 删除远程分支
git push origin --delete remoteBranchName
// 推送新的仓库到远程仓库
git push origin newBranch
checkout
// 切换分支
git checkout develop
// 拉取远程分支到本地 git checkout -b dev(本地分支名称) origin/develop(远程分支名称)
git checkout -b dev-name origin/develop
// 拉取远程分支并切换分支
git checkout -t remotes/origin/develop
// 拉取远程分支并切换分支---重新起名字
git checkout -b alise-develop -t remotes/origin/develop
// 放弃所有内容修改
git checkout .
// 恢复所有暂存文件 (解决 git stash save "message" -a)
git checkout stash@{0} -- .
reset
// 删除工作空间改动代码,撤销commit,撤销git add .
// 注意完成这个操作后,会删除工作空间代码!!!恢复到上一次的commit状态。慎重!!!
git reset --hard "45b2f6fabc14d254db8e39a9bd689761de2ca8cd"
// 不删除工作空间改动代码,撤销commit,不撤销git add .
git reset --soft xxxx
// 意思是:不删除工作空间改动代码,撤销commit,并且撤销git add . 操作
// 这个为默认参数,git reset --mixed HEAD^ 和 git reset HEAD^ 效果是一样的。
git reset --mixed xxxx
pull
// 拉取远程代码从远程拉取最新版本到本地 自动合并 merge
git pull origin develop
log
// 美化输出log
git log --oneline
// -p按补丁格式显示每个提交引入的差异
git log -p 文件路径
// 查看修改了哪些文件
git log --stat
reflog
// git reflog 可以查看所有分支的所有操作记录(包括(包括commit和reset的操作),包括已经被删除的commit记录,git log则不能察看已经删除了的commit记录,而且跟进结果可以回退道某一个修改
git reflog
stash
// 存储跟踪和未跟踪
git stash save "message" -a -u
// 暂存在本地
git stash save "local"
// 查看stash了哪些存储
git stash list
// 显示做了哪些改动,默认show第一个存储,如果要显示其他存贮,后面加stash@{$num},比如第二个 git stash show stash@{1}
git stash show stash@{1}
// 显示第一个存储的改动,如果想显示其他存存储,命令:git stash show stash@{$num} -p ,比如第二个:git stash show stash@{1} -p
git stash show stash@{1} -p
// 应用某个存储,但不会把存储从存储列表中删除,默认使用第一个存储,即stash@{0},如果要使用其他个,git stash apply stash@{$num} , 比如第二个:git stash apply stash@{1}
git stash apply stash@{1}
// 命令恢复之前缓存的工作目录,将缓存堆栈中的对应stash删除,并将对应修改应用到当前的工作目录下,默认为第一个stash,即stash@{0},如果要应用并删除其他stash,命令:git stash pop stash@{$num} ,比如应用并删除第二个:git stash pop stash@{1}
git stash pop stash@{1}
// 丢弃stash@{$num}存储,从列表中删除这个存储
git stash drop stash@{$num}
// 删除所有缓存的stash
git stash clear
cherry-pick
当某次修改的小需求更新到生产分支时,该操作比merge更加安全和灵活
// 在当前开发分支执行 git log ,获取到某次提交操作的 *commit id*,并复制该ID 切换到其它分支 git checkout xxx
git cherry-pick commit _d
diff
// 查看temp分支与本地原有分支的不同
git diff temp
merge
// 将temp分支和本地master分支合并
git merge temp
// `--commit`和`--no-commit`
`--commit`参数使得合并后产生一个合并结果的commit节点。该参数可以覆盖`--no-commit`。
`--no-commit`参数使得合并后,为了防止合并失败并不自动提交,能够给使用者一个机会在提交前审视和修改合并结果。
remote
// 查看关于origin的一些信息,包括分支是否tracking
git remote show origin
// git remote prune会与远程仓库进行一次同步移除这个分支
git remote prune origin
commit
// 按i 修改git commit - m "xxxxxx" 的注释,点击ESC进入“正常模式”,然后输入“:”,进入“命令模式”。此时屏幕的下方会出现一个冒号,你可以输入以下命令,并按“ENTER”执行
git commit --amend
tag
// 当前仓库的所有tag
git tag
// 显示tag
git tag -n
// 创建tag带有说明信息
git tag -a v0.0.1 -m "提交信息"
// 切换tag
git checkout v0.0.1
// 删除tag
git tag -d v0.0.1
// 查看某个tag信息
git show v0.0.1
// 推送某一tag到远程仓库
git push origin v0.0.1
// 一次推送多个标签
git push origin --tags
// 删除远端tag:本地删除后,再删除远端tag(推送一个空的tag到远端tag,用空值覆盖原值)
git push origin :refs/tags/V20210310
// --delete 参数
git push origin --delete tag V20210310
更多git