共计 2317 个字符,预计需要花费 6 分钟才能阅读完成。
基本操作
- git add .
- git commit -m “fix: xxx”
- git push
开发工作流
-
惯例操作
- 从
master
(正式环境)切分支feat-xxx-xxx
(以后业务简称) feat-xxx-xxx
代码merge
(合并) 到text-release
(测试环境)- 测试环境通过测试后,将
feat-xxx-xxx
代码合并到master
- 从
-
多人多分支一次合并到
master
(俗称发车)- 测试通过后,从
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 存在抵触时(🌟为避免抵触倡议应用这里的残缺流程比拟稳🌟)
- 从
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 时可用git stash
存储以后 changegit stash save "save message"
给以后存储事件增加备注git stash list
查看 stash 存储列表git stash pop
复原之前缓存的工作目录并删除这一条 stash
-
git reset
(代码回退)- 第一步
git log
// 取得 commit 信息 - 第二步 复制回退对应工夫的 commit hash 值
- 第三步
git reset --soft xxxxxxx(commit hash 值)
--hard
是不保留以后已批改的,--soft
是保留以后已批改的- 第四步
git push -f
// 强制提交代码
- 第一步
-
git reflog
(时光穿梭机)- 代码被不小心回退了怎么修复回来?
- 第一步
git reflog
// 取得所有的 git 操作 - 第二步
git reset --hard xxxxxxxx
-
git cherry-pick
- 修复到了指定 hash 点时,这个之后的就没了,如何加上来呢?
- 第三步
git cherry-pick xxxxxxx(须要被加上来的 commit hash)
-
fork 库拉取上游代码
- 第一步 增加 upstream 上游仓库的近程链接
git remote add upstream https://github.com/xx/repo
- 第二步
git pull upstream
- 或者拉取指定分支(如 master)
git pull upstream master
-
本地更新近程分支列表
git remote update origin --prune
git fetch
是更新所有近程分支到本地(近程分支被删除的话本地 origin 更新后也会被删除)
-
git merge
(合并代码)- 合并 Branch1 代码到以后分支
git merge Branch1
- 合并 Branch1 代码到以后分支
-
git rebase
(合并提交的 commit)- 🚩7/ 8 操作最好在网页上通过创立
New merge request
来操作 - 个别步骤是 merge,而后旁边有个选项是否 rebase
- 如果勾选上,那么你 merge 过去的所有 commits 会被合并成一条 commit
- 🚩7/ 8 操作最好在网页上通过创立
git config
-
查看以后
.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 账号时,
- 比方 gitlab 是公司的,邮箱也是公司发的,而 github 邮箱是本人的
- 这个时候最好不要间接共用全局配置
- 最好在单个我的项目内配置
- 因为
- git 是以邮箱为准去匹配指定用户的
多个 ssh 钥匙共存
参考: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
大厂真心累🥱,做的活都一样,只不过更加精细化一些。也就在公布日当天公布过后才有一、、集体工夫充充🔋
正文完