另一个技巧是使用一个独立的分支,在项目的子树中签出,就像 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