大厂git工做流

基本操做

  • git add .
  • git commit -m "fix: xxx"
  • git push

开发工做流

  1. 常规操做html

    1. master(正式环境)切分支 feat-xxx-xxx (当前业务简称)
    2. feat-xxx-xxx 代码merge(合并)到text-release(测试环境)
    3. 测试环境经过测试后,将feat-xxx-xxx代码合并到master
  2. 多人多分支一次合并到master(俗称发车)git

    1. 测试经过后,从master切分支v2.x.x(待发布版本)
    2. feat-xxx-xxxfeat-yyy-yyy等分支在github/gitlab网页上以New merge request(mr)的形式发送合并请求(pull request
    3. 等待相关负责人code review事后,再将v2.x.x分支合并到master
  3. mr存在冲突时(🌟为防止冲突建议使用这里的完整流程比较稳🌟)github

    1. master切分支feat-xxx-xxx
    2. feat-xxx-xxx代码merge到rest-release提交测试
    3. 测试经过后,从master切分支v2.x.x
    4. 🚩feat-xxx-xxx合并v2.x.x里面的代码(由于你在开发的过程当中master/v2.x.x可能已经合了其余同事的代码了)
    5. 这时有冲突解决冲突,而且本地代码最好再运行一遍确保万无一失
    6. 再将feat-xxx-xxx经过New merge request的方式新建一个pull requestv2.x.x
    7. 等待相关负责人code review事后Merge代码

命令集

  1. git stash(代码暂存,非commit)
    通常用在你在有代码修改的状况下须要切分支又不想提交commit时可用vim

    • git stash 存储当前change
    • git stash save "save message" 给当前存储事件添加备注
    • git stash list 查看stash存储列表
    • git stash pop 恢复以前缓存的工做目录并删除这一条stash
  2. git reset(代码回退)缓存

    • 第一步 git log //得到commit信息
    • 第二步 复制回退对应时间的commit hash值
    • 第三步 git reset --soft xxxxxxx(commit hash值)
    • --hard是不保存当前已修改的,--soft是保存当前已修改的
    • 第四步 git push -f //强制提交代码
  3. git reflog(时光穿梭机)ssh

    • 代码被不当心回退了怎么修复回来?
    • 第一步 git reflog //得到全部的git操做
    • 第二步 git reset --hard xxxxxxxx
  4. git cherry-pickgitlab

    • 修复到了指定hash点时,这个以后的就没了,如何加上来呢?
    • 第三步 git cherry-pick xxxxxxx(须要被加上来的commit hash)
  5. fork库拉取上游代码测试

    • 第一步 添加upstream上游仓库的远程连接
    • git remote add upstream https://github.com/xx/repo
    • 第二步 git pull upstream
    • 或者拉取指定分支(如master) git pull upstream master
  6. 本地更新远程分支列表fetch

    • git remote update origin --prune
    • git fetch是更新全部远程分支到本地(远程分支被删除的话本地origin更新后也会被删除)
  7. git merge(合并代码)rest

    • 合并Branch1代码到当前分支 git merge Branch1
  8. git rebase(合并提交的commit)

    • 🚩7/8操做最好在网页上经过建立New merge request来操做
    • 通常步骤是merge,而后旁边有个选项是否rebase
    • 若是勾选上,那么你merge过来的全部commits会被合并成一条commit

git config

  1. 查看当前.git配置

    git config user.name
    git config user.email
  2. 设置当前.git用户/邮箱

    git config user.name "xxx"
    git config user.email "xxx@abc.com"
  3. 设置全局.git配置

    git config --global user.name "xxx"
    git config --global user.email "xxx@abc.com"
  4. 当存在多个gitlab/github帐号时,

    1. 好比gitlab是公司的,邮箱也是公司发的,而github邮箱是本身的
    2. 这个时候最好不要直接共用全局配置
    3. 最好在单个项目内配置
    4. 由于
    5. git是以邮箱为准去匹配指定用户的

多个ssh钥匙共存

参考: https://www.cnblogs.com/hafiz...
  1. 为公司生成一对秘钥ssh key

    ssh-keygen -t rsa -C 'yourEmail@xx.com' -f ~/.ssh/gitlab-rsa
  2. 为github生成一对秘钥ssh key

    ssh-keygen -t rsa -C 'yourEmail2@xx.com' -f ~/.ssh/github-rsa
  3. 在~/.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、、我的时间充充🔋
相关文章
相关标签/搜索