说我有一个名为“todo”的文件
这是我想为这个项目做的事情清单。
我希望这个文件与我的git repo相关联。
我希望对此文件进行不同的修订,
但是,我不希望它与特定分支相关联。例如:
我只想要一个“todo”文件 - 这可能吗?这有意义吗?我是不是在某种程度上滥用todo?
答案 0 :(得分:10)
另一个技巧是使用一个独立的分支,在项目的子树中检出,正如Junio Hamano(当前的Git维护者)对Git的todo做的那样。食谱:
$ cd project/
$ git branch
* master
$ git init META
您现在可以在META/
$ cd META/
$ echo '* Item 1' > todo.org
$ git add todo.org
$ git commit -m 'Initial version of TODO file'
[master (root-commit) 64748ba] Initial version of TODO file
1 files changed, 1 insertions(+), 0 deletions(-)
create mode 100644 todo.org
让我们将分支名称更改为meta
,并将其推回主存储库:
$ git branch -m meta
$ git push .. meta
您必须记住在每次提交后将分支推回;设置提交后挂钩可能是有序的。
META/
现在显示为主存储库中未跟踪的文件;让我们在本地忽略它:
$ cd ..
$ git status
# (Shows META/ as untracked)
$ echo META/ >> .git/info/exclude
您现在可以随意切换分支,只要您切换到的分支不包含冲突路径,META/
将保持不变。
主存储库现在包含一个额外的,完全独立的分支,可以像项目的任何其他部分一样推送和拉出:
$ git branch
* master
meta
$ gitk --all
答案 1 :(得分:1)
使用不同的回购。
我保留了一个~/org
目录,emacs会自动跟踪git并在我的计算机上进行同步。我所有的待办事项都在那里,但它与任何特定项目无关。如果我想要一个与特定项目相关联的项目,我会创建一个~/org/project.org
。
答案 2 :(得分:1)
每当您想要更新待办事项文件时,都可以merge it first
git checkout previousBranch todo
注意:如果您不合并,您可以看到任何分支的待办事项内容:
git show myBranch:todo
如果您的todo
文件位于存储库的根目录下,它将在任何路径上运行,因为git show
使用的路径是所述仓库顶级目录中的绝对路径。 / p>
你可以这样:
git branch
)