Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我们应该如何干净有效地使用git分支?_Git_Github - Fatal编程技术网

我们应该如何干净有效地使用git分支?

我们应该如何干净有效地使用git分支?,git,github,Git,Github,我们有一个分支staging,它是我们的主分支。这是部署的分支 我们有两个开发者。我们希望独立地处理功能,但在将更改推送到暂存之前,请确保兼容性 我们该怎么做 这是我认为我们可以做的 我从staging分支创建功能化身编辑 我的同事从暂存的同一个提交分支创建修复配置文件对齐。他提交了一些东西并完成了这个分支,然后将它合并回staging。他删除修复外形对齐 我想继续进行功能头像编辑,但我希望我的同事的更改存在于功能头像编辑,否则我可能会在稍后完成并合并到暂存时产生问题。(基本上,当我几乎完成功

我们有一个分支
staging
,它是我们的主分支。这是部署的分支

我们有两个开发者。我们希望独立地处理功能,但在将更改推送到
暂存
之前,请确保兼容性

我们该怎么做

这是我认为我们可以做的

  • 我从
    staging
    分支创建
    功能化身编辑
  • 我的同事从
    暂存的同一个提交分支创建
    修复配置文件对齐
    。他提交了一些东西并完成了这个分支,然后将它合并回
    staging
    。他删除
    修复外形对齐
  • 我想继续进行
    功能头像编辑
    ,但我希望我的同事的更改存在于
    功能头像编辑
    ,否则我可能会在稍后完成并合并到
    暂存
    时产生问题。(基本上,当我几乎完成
    功能头像编辑
    的工作时,我想确认它是否工作正常,包括添加到
    暂存
    中的
    修复配置文件对齐
    的更改)
  • 我切换到
    staging
    并执行
    git pull
    ,以使同事提交最近的更改然后我做了一个
    git-rebase
    基本上“移动”了
    功能头像编辑
    偏离
    登台
    的点
  • 我查看
    功能头像编辑的当前状态
    ,对出现在我的分支中的同事提交进行必要的修复,并合并到
    暂存
    。我删除
    功能头像编辑
到目前为止,我发现rebase倾向于引入重复提交。我期望发生的是这样的事情。重设基准前:

A    staging
| \
B |  merge fix-profile-alignment into staging
  C  feature-avatar-edit
重设基准后:

A    staging
|
B    merge fix-profile-alignment into staging
  \  
  |
  C  feature-avatar-edit
  • 我如何在不在历史记录中创建重复提交的情况下实现上述目标?或者像这样工作可以吗
  • 拉取请求的使用是如何进入的?假设一次只有一个人在该分支上工作,那么在创建拉取请求后执行
    git-rebase
    可以吗

  • 如果你想要一个线性历史,这正是应该做的

    存在重复提交,因为来自重新基化提交的文件的内容不同(因为它包含来自
    fix profile alignment
    的更改),因此
    SHA
    哈希不同

    您可以通过以下方式将其从历史记录中删除:


    至于重基,在它之后,您仍在进行
    功能化身编辑
    ,并且
    分段
    尚未修改。如果合并到stagging中,则应立即将stagging
    推到远程,以避免后面的冲突(否则必须执行
    git pull--rebase
    以保持历史线性)。但是,您也可以定期重新设置基础,以确保您的功能与其他功能正确集成(例如,如果其他开发人员正在开发许多小功能,并定期推送至
    分期
    )。

    如果您想要线性历史,这正是应该采用的方法

    存在重复提交,因为来自重新基化提交的文件的内容不同(因为它包含来自
    fix profile alignment
    的更改),因此
    SHA
    哈希不同

    您可以通过以下方式将其从历史记录中删除:


    至于重基,在它之后,您仍在进行
    功能化身编辑
    ,并且
    分段
    尚未修改。如果合并到stagging中,则应立即将stagging
    推到远程,以避免后面的冲突(否则必须执行
    git pull--rebase
    以保持历史线性)。但是,您也可以定期重新设置基础,以确保您的功能与其他功能正确集成(例如,如果其他开发人员正在开发许多小功能,并定期推送至
    分期
    )。

    如果您想要线性历史,这正是应该采用的方法

    存在重复提交,因为来自重新基化提交的文件的内容不同(因为它包含来自
    fix profile alignment
    的更改),因此
    SHA
    哈希不同

    您可以通过以下方式将其从历史记录中删除:


    至于重基,在它之后,您仍在进行
    功能化身编辑
    ,并且
    分段
    尚未修改。如果合并到stagging中,则应立即将stagging
    推到远程,以避免后面的冲突(否则必须执行
    git pull--rebase
    以保持历史线性)。但是,您也可以定期重新设置基础,以确保您的功能与其他功能正确集成(例如,如果其他开发人员正在开发许多小功能,并定期推送至
    分期
    )。

    如果您想要线性历史,这正是应该采用的方法

    存在重复提交,因为来自重新基化提交的文件的内容不同(因为它包含来自
    fix profile alignment
    的更改),因此
    SHA
    哈希不同

    您可以通过以下方式将其从历史记录中删除:

    至于重基,在它之后,您仍在进行
    功能化身编辑
    ,并且
    分段
    尚未修改。如果合并到stagging中,则应立即将stagging
    推到远程,以避免后面的冲突(否则必须执行
    git pull--rebase
    以保持历史线性)。但是,您也可以定期重新设置基址,以确保您的功能与其他功能正确集成(例如,如果其他开发人员正在开发许多小功能,并定期推送至
    暂存
    )。

    我认为您的“重复”提交可能存在,因为您已推送至
    --A---B---C - staging
           \---D - feature - remote/feature
    
               /---D' - feature
    --A---B---C - staging
           \---D - remote/feature