常规操做html
master
(正式环境)切分支 feat-xxx-xxx
(当前业务简称)feat-xxx-xxx
代码merge
(合并)到text-release
(测试环境)feat-xxx-xxx
代码合并到master
多人多分支一次合并到master
(俗称发车)git
master
切分支v2.x.x
(待发布版本)feat-xxx-xxx
、feat-yyy-yyy
等分支在github/gitlab网页上以New merge request
(mr)的形式发送合并请求(pull request
)code review
事后,再将v2.x.x
分支合并到master
mr存在冲突时(🌟为防止冲突建议使用这里的完整流程比较稳🌟)github
master
切分支feat-xxx-xxx
feat-xxx-xxx
代码merge到rest-release
提交测试master
切分支v2.x.x
feat-xxx-xxx
合并v2.x.x
里面的代码(由于你在开发的过程当中master/v2.x.x可能已经合了其余同事的代码了)feat-xxx-xxx
经过New merge request
的方式新建一个pull request
到v2.x.x
code review
事后Merge
代码git stash
(代码暂存,非commit)
通常用在你在有代码修改的状况下须要切分支又不想提交commit时可用vim
git stash
存储当前changegit stash save "save message"
给当前存储事件添加备注git stash list
查看stash存储列表git stash pop
恢复以前缓存的工做目录并删除这一条stashgit reset
(代码回退)缓存
git log
//得到commit信息git reset --soft xxxxxxx(commit hash值)
--hard
是不保存当前已修改的,--soft
是保存当前已修改的git push -f
//强制提交代码git reflog
(时光穿梭机)ssh
git reflog
//得到全部的git操做git reset --hard xxxxxxxx
git cherry-pick
gitlab
git cherry-pick xxxxxxx(须要被加上来的commit hash)
fork库拉取上游代码测试
git remote add upstream https://github.com/xx/repo
git pull upstream
git pull upstream master
本地更新远程分支列表fetch
git remote update origin --prune
git fetch
是更新全部远程分支到本地(远程分支被删除的话本地origin更新后也会被删除)git merge
(合并代码)rest
git merge Branch1
git rebase
(合并提交的commit)
New merge request
来操做查看当前.git
配置
git config user.name git config user.email
设置当前.git
用户/邮箱
git config user.name "xxx" git config user.email "xxx@abc.com"
设置全局.git
配置
git config --global user.name "xxx" git config --global user.email "xxx@abc.com"
当存在多个gitlab/github帐号时,
参考: https://www.cnblogs.com/hafiz...
为公司生成一对秘钥ssh key
ssh-keygen -t rsa -C 'yourEmail@xx.com' -f ~/.ssh/gitlab-rsa
为github生成一对秘钥ssh key
ssh-keygen -t rsa -C 'yourEmail2@xx.com' -f ~/.ssh/github-rsa
在~/.ssh目录下新建名称为config的文件(无后缀名)(可经过vim config
建立)。
用于配置多个不一样的host使用不一样的ssh key,内容以下:
# gitlab Host gitlab.com HostName gitlab.com PreferredAuthentications publickey IdentityFile ~/.ssh/gitlab-rsa # github Host github.com HostName github.com PreferredAuthentications publickey IdentityFile ~/.ssh/github-rsa
大厂真心累🥱,作的活都同样,只不过更加精细化一些。也就在发布日当天发布事后才有1、、我的时间充充🔋