首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何管理开发期刊?

如何管理开发期刊?
EN

Software Engineering用户
提问于 2018-07-23 13:24:21
回答 3查看 279关注 0票数 2

我用Git在自己的时间里单独做一些小的开发项目。对于每个项目,我都希望有一个与该项目相关的开发日志,而不是与其他项目相关联的开发日志。日志是一个简单的标记文件,journal.md

以下是我在工作流程中管理日记的要求:

  • 项目存储库中必须有一个journal.md托管版本;
  • 我需要能够从任何分支对journal.md进行更改,并且在通过git checkout签出不同分支时保持这些更改(即文件不能因为切换分支而更改,在切换分支时也不能删除)。

我正在寻找工作流(一组用于切换分支的Git命令,或者一种存储journal.md的方法,或者其他允许我在Git中正常工作而同时满足上述要求的方法)。

我调查了以下几种选择。

  1. 保持一个单独的孤立分支journal__;将初始日志和日志更新提交到这个分支,而不是其他分支。这满足了第一个需求,但由于git checkout的行为,第二个需求更复杂。
    • 假设我已经完成了一天的日志更新,并将日志更新提交给了journal;那么,在第二天开始时,我需要从journal切换到master。在这种情况下,git checkout将删除journal.md,即使我希望保留文件并修改它。
    • 假设我在master上有一个修改过的版本的D25,我想将这个修改后的版本提交给journal。在这种情况下,git checkout会抱怨“本地更改将被覆盖”。
    • 如果可以在journal上添加/提交单个文件,而不实际签出master,则可以避免这两个问题。然而,我并没有找到这样做的方法。

  2. 为这个特定项目的日志文件保留一个单独的存储库--例如,-journal__。这显然不能满足第一个需求,尽管它确实满足了第二个需求。这种方法的主要问题是,对于单个(小型)项目,我有两个独立的存储库。这个feels...wrong。

如有任何建议,将不胜感激。

EN

回答 3

Software Engineering用户

发布于 2018-07-23 15:51:37

首先,我建议您重新考虑为整个存储库创建一个“日志”的想法,而不管哪个分支。我为我的大型项目做了类似的事情(Release-Notes.md,很多人也称它为ChangeLog)。

示例:

但是,如果您对这个选择很有信心(不管哪个分支都有一个日志)--将它存储在自己的存储库中是一个相当可行的解决方案,并且当您将它与git子模块组合在一起时,会离您的目标更近一些。使日志文件夹成为子模块,并使所有分支与该子模块的最新版本保持同步。

票数 2
EN

Software Engineering用户

发布于 2023-04-24 16:42:37

我建议对备选方案1进行修改:

  • 使用孤儿分支journal
  • 将其保存在单独的工作树中。
代码语言:javascript
复制
    git worktree add --detach ../journal
    cd ../journal/
    git switch --orphan journal
    touch journal.md
    git add journal.md
    git commit -m 'Init journal'

现在,您可以通过访问这个工作树来编辑这个日志,它可以永远保存在这个分支上。

票数 0
EN

Software Engineering用户

发布于 2023-04-25 16:13:27

将“真实”日志存储在项目的父文件夹中,并经常将快照复制到当前签出的分支中。因此,它的历史将被记录在每个例行的$ git commit -a

有几个星期没有被检查过的分支会有陈旧的期刊历史,这没什么。最终它会迎头赶上。当特性分支被合并到main时,聚合历史将全部存在。

假设“仅附加”(或附加“主要”)记录保存,合并冲突应该是微不足道的解决,如果它们发生了。

在emacs中,我发现C-c . (CTRL/C点)是一种向组织模式的标记文件中添加标准化数据存储点的方便方法。

对于项目"foo“和"baz",下面是一个示例布局。我的每个项目都有一个Makefile来支持像$ make lint test$ make release这样的公共命令序列,我想日志记录会折叠到其中。或者,您可以编写一个简短的复制日志shell脚本,该脚本在各个项目中都很常见。

代码语言:javascript
复制
├── baz
│   ├── Makefile
│   ├── cache
│   │   └── baz-journal.md
│   └── src
├── baz-journal.md
├── foo
│   ├── Makefile
│   ├── cache
│   │   └── foo-journal.md
│   └── src
└── foo-journal.md
票数 0
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/375724

复制
相关文章

相似问题

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