我用Git在自己的时间里单独做一些小的开发项目。对于每个项目,我都希望有一个与该项目相关的开发日志,而不是与其他项目相关联的开发日志。日志是一个简单的标记文件,journal.md。
以下是我在工作流程中管理日记的要求:
journal.md托管版本;journal.md进行更改,并且在通过git checkout签出不同分支时保持这些更改(即文件不能因为切换分支而更改,在切换分支时也不能删除)。我正在寻找工作流(一组用于切换分支的Git命令,或者一种存储journal.md的方法,或者其他允许我在Git中正常工作而同时满足上述要求的方法)。
我调查了以下几种选择。
journal__;将初始日志和日志更新提交到这个分支,而不是其他分支。这满足了第一个需求,但由于git checkout的行为,第二个需求更复杂。journal;那么,在第二天开始时,我需要从journal切换到master。在这种情况下,git checkout将删除journal.md,即使我希望保留文件并修改它。master上有一个修改过的版本的D25,我想将这个修改后的版本提交给journal。在这种情况下,git checkout会抱怨“本地更改将被覆盖”。journal上添加/提交单个文件,而不实际签出master,则可以避免这两个问题。然而,我并没有找到这样做的方法。-journal__。这显然不能满足第一个需求,尽管它确实满足了第二个需求。这种方法的主要问题是,对于单个(小型)项目,我有两个独立的存储库。这个feels...wrong。如有任何建议,将不胜感激。
发布于 2018-07-23 15:51:37
首先,我建议您重新考虑为整个存储库创建一个“日志”的想法,而不管哪个分支。我为我的大型项目做了类似的事情(Release-Notes.md,很多人也称它为ChangeLog)。
示例:
但是,如果您对这个选择很有信心(不管哪个分支都有一个日志)--将它存储在自己的存储库中是一个相当可行的解决方案,并且当您将它与git子模块组合在一起时,会离您的目标更近一些。使日志文件夹成为子模块,并使所有分支与该子模块的最新版本保持同步。
发布于 2023-04-24 16:42:37
我建议对备选方案1进行修改:
journal git worktree add --detach ../journal
cd ../journal/
git switch --orphan journal
touch journal.md
git add journal.md
git commit -m 'Init journal'现在,您可以通过访问这个工作树来编辑这个日志,它可以永远保存在这个分支上。
发布于 2023-04-25 16:13:27
将“真实”日志存储在项目的父文件夹中,并经常将快照复制到当前签出的分支中。因此,它的历史将被记录在每个例行的$ git commit -a。
有几个星期没有被检查过的分支会有陈旧的期刊历史,这没什么。最终它会迎头赶上。当特性分支被合并到main时,聚合历史将全部存在。
假设“仅附加”(或附加“主要”)记录保存,合并冲突应该是微不足道的解决,如果它们发生了。
在emacs中,我发现C-c . (CTRL/C点)是一种向组织模式的标记文件中添加标准化数据存储点的方便方法。
对于项目"foo“和"baz",下面是一个示例布局。我的每个项目都有一个Makefile来支持像$ make lint test或$ make release这样的公共命令序列,我想日志记录会折叠到其中。或者,您可以编写一个简短的复制日志shell脚本,该脚本在各个项目中都很常见。
├── baz
│ ├── Makefile
│ ├── cache
│ │ └── baz-journal.md
│ └── src
├── baz-journal.md
├── foo
│ ├── Makefile
│ ├── cache
│ │ └── foo-journal.md
│ └── src
└── foo-journal.mdhttps://softwareengineering.stackexchange.com/questions/375724
复制相似问题