与repo关联的git中的文件,在版本控制下,但与任何特定分支无关?

ano*_*non 6 git

假设我有一个名为"todo"的文件

这是我想为这个项目做的事情清单.

我希望这个文件与我的git repo相关联.

我希望有这个文件的不同修订版,

但是,我不希望它与特定分支相关联.例如:

  1. 在分支大师.
  2. 创建一些基本的ToDo项目
  3. 分支"dev1"
  4. 添加更多东西到待办事项列表
  5. 分支"dev2"来自大师.
  6. 添加更多东西到待办事项列表
  7. 现在,我对todo文件进行了不同的修改.

我只想要一个"todo"文件 - 这可能吗?这有意义吗?我不知道怎么会误导todo?

Dam*_*ren 10

另一个技巧是使用一个独立的分支,在你的项目的子树中检查,就像Junio Hamano(当前的Git维护者)和Git的todo一样.菜谱:

$ cd project/
$ git branch
* master
$ git init META
Run Code Online (Sandbox Code Playgroud)

您现在可以创建"待办事项列表"和其他文件 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
Run Code Online (Sandbox Code Playgroud)

让我们将分支名称更改为meta,并将其推回主存储库:

$ git branch -m meta
$ git push .. meta
Run Code Online (Sandbox Code Playgroud)

你必须记住在每次提交后推回分支; 设置post-commit钩子可能是有序的.

META/现在显示为主存储库中未跟踪的文件; 我们在本地忽略它:

$ cd ..
$ git status
# (Shows META/ as untracked)
$ echo META/ >> .git/info/exclude
Run Code Online (Sandbox Code Playgroud)

您现在可以随意切换分支,并且META/保持不变 - 只要您切换到的分支当然不包含冲突路径.

主存储库现在包含一个额外的,完全独立的分支,可以像项目的任何其他部分一样推送和拉取:

$ git branch
* master
  meta
$ gitk --all
Run Code Online (Sandbox Code Playgroud)

截图