首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Git分支工作流;如何减少Git命令的数量

Git分支工作流;如何减少Git命令的数量
EN

Stack Overflow用户
提问于 2014-10-21 18:59:13
回答 1查看 187关注 0票数 1

这不是一个关于工作流意见的问题,而是一个关于如何减少下面工作流的击键量的具体问题。

我的开发团队通常遵循一个定制的分支Git工作流。

工作流

  • 代码是从master分支的
  • 分支有前缀feature/<branch>refactor/<branch>bug/<branch>等.
  • 代码(和测试)是为该分支编写的。
  • 代码以拉请求的形式提交给master
  • 对拉请求进行评审、注释,然后合并到master中。
  • 删除旧分支并继续

这是我们的工作流程,对我们来说很好。但是,我执行的git命令已经变得相当重复,而且有点烦人。

用于工作流的Git命令

  • git checkout -b feature/new-branch-name
  • 做些工作..。
  • git add .
  • git commit -m "some commit message"
  • git push --set-upstream origin feature/new-branch-name
  • 转到Github页面,提交对刚被推送的代码的拉请求
  • 检查拉请求和合并,删除在回购上的分支,但现在必须删除本地.
  • git checkout master (切换回主控以在更改中合并)
  • git pull (从新分支获取更新)
  • git branch -d feature/new-branch-name (删除本地分支)
  • 现在我处于一种可以重复这一切的状态

有更干净的方法来减少这么多的git命令吗?重复这一切已经变得非常乏味了。我正在考虑为我编写一些脚本文件来管理其中的一些。我知道有一些脚本已经存在,但我不想被强迫进入别人的方法,我只是在寻找方法来拯救我的手指在这里。

任何一天,我将分支和提交拉请求约3-6次.因此,我们的分支机构寿命很短,规模和范围都很小。但实际的过程是艰巨的。

有谁有更好的实现来完成我团队的分支机制?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-22 16:22:24

1)您不需要每次想要扩展时都物理地更新master,您可以替换以下步骤:

代码语言:javascript
复制
git checkout master
git pull
git checkout -b feature/new-branch-name

通过以下方式:

代码语言:javascript
复制
git fetch
git checkout -b feature/new-branch-name origin/master

(这两个命令是git别名/脚本的很好的候选命令,称为git-start-特性)

2) git add . && git commit -m msg就是git commit -a -m msg。有时,您需要进行单个提交,有时将更改拆分为多个提交,因此编写脚本没有意义。您还可以先提交任何更改,然后继续修改。

3)您不需要立即删除本地分支,但如果需要,则可以将此步骤与git push结合起来

代码语言:javascript
复制
git push -u origin feature/new-branch-name
git checkout master
git branch -D feature/new-branch-name

您可以将其转换为脚本git-push-forget

代码语言:javascript
复制
#!/bin/bash
branch_name=$(git rev-parse --abbrev-ref HEAD)
case "$branch_name" in
    master)
        echo "ops, this master!"
        exit 1
        ;;
    *)
        if git push -u origin "$branch_name"; then
            git checkout master
            git branch -D "$branch_name"
        else
            echo "umpf, git push failed..."
            exit 2
        fi
        ;;
esac

(请注意,我没有检查这个脚本是否有效,只是在网上打印出来;如果您对此有任何疑问,请向我发送)

所以现在您的工作流程应该如下所示:

代码语言:javascript
复制
git-start feature/new-branch-name
# work, work, work
git commit -a -m "magnificent"
git-push-forget
# do github specific stuff

编辑也,使用bash完成与终端快速工作。如果您正在使用Linux,那么请确保您已经安装了bash完成包(或bash完成包)-一些发行版在默认情况下可能不会安装它。您还可以编写自己的完成文件(例如,不断建议您为git-start脚本命名分支)。如果你想朝那个方向走,就大声喊出来。

另一点是打开带有github请求的浏览器页面(如果可以猜到url,我不使用github企业)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26494248

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档