繁体   English   中英

git(+ LaTeX)分支/合并工作流程

[英]git (+ LaTeX) branching/merging workflow

目前的工作流程

我正在使用git来控制我用LaTeX编写的论文的版本。 我想改善我目前次佳的git工作流程 ,因为它需要太多的合并(即,它花费时间+污染了日志历史记录)。

目前,我的工作流程如下: 在此处输入图片说明

  • 我承诺只对master分支“最终版本”进行发布(即,当我向主管发送工作的当前最新版本时);
  • 这些提交来自develop分支,该分支聚集了多个feature/x分支并包含预发行补丁。
  • 对应于论文各个部分的几个feature/x ,例如:
    • feature/state-of-the-art
    • feature/conclusion
    • feature/page-layout
    • feature/global-settings

在每个feature分支中,我大多只更改一个文件(例如,第一个分支的part/SotA.tex )。 但是我喜欢与多个分支一起工作,这样我可以更轻松地跟踪在该部分或主题上完成的工作。


缺点

但是,此工作流程有一些我想解决的缺点:

  • 要概述我的工作 ,我必须将每个feature/x分支合并到develop 这使我做了很多合并提交,这污染了我的历史记录。 确实,我的工作流程实际上看起来像这样(其中d3d4d5才在这里,使我能够整体了解自己的工作):
    在此处输入图片说明

  • 同样, 如果我想导入在另一个分支中完成的修改 (例如,加载程序包),则必须将develop分支合并回每个feature/x分支中:
    在此处输入图片说明


因此,我希望能够

  1. 与其他feature/x分支共享feature/n分支的更改,
  2. 能够对我的工作保留在feature/n分支上的概述(而不是$git checkout master + $git merge feature/n

没有这样做太多的合并。
我知道我可以使用更少的分支,但是,如上所述,它们对我很有用,我希望保留它们。 我认为rebase -p可能是一个解决方案,但是我对git掌握不足以弄清楚如何进行-因为每个feature/x分支都源自并合并为develop


注意:我是此工作流程中唯一的提交者,因此我可以根据需要重写历史记录。

要概述我的工作,我必须将每个feature / x分支合并到development中。

提交并没有什么神圣的。 最简单的方法可能是使用可丢弃的分支名称来进行概述,

git checkout -B overview develop; git merge feature/x feature/y feature/z

然后看完就放弃了,然后检查其他内容。

同样,如果我想导入在另一个分支中完成的修改(例如,加载程序包),则必须将develop分支合并回每个feature / x分支中。

Naaahh。 我会让加载的软件包与子模块一起工作,而不再担心它,为这些东西准备一个“ packages”仓库,只记得在提交之前将git add的当前软件包集git add进去,或者在没有子模块的情况下进行操作只是git rm -r packages; git checkout develop -- packages git rm -r packages; git checkout develop -- packages可以跨您想要的版本进行复制。 对于其他更改,可以进行小巧的行车修补程序,例如,通常足够的git cherry-pick甚至git cherry-pick --no-commit就是您真正想要的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM