【问题标题】:A file in git associated with the repo, under revision control, but not associated with any particular branch?git 中与 repo 相关联的文件,受修订控制,但不与任何特定分支相关联?
【发布时间】:2011-01-30 05:29:06
【问题描述】:

假设我有一个名为:“todo”的文件

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

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

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

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

  1. 在主分支上。
  2. 创建一些基本的 ToDo 项目
  3. 分支“dev1”
  4. 向待办事项列表添加更多内容
  5. 从 master 分支“dev2”。
  6. 向待办事项列表添加更多内容
  7. 现在,我有不同版本的 todo 文件。

我只想有一个“待办事项”文件——这可能吗?这有意义吗?我是否以某种方式滥用了 todo?

【问题讨论】:

    标签: git


    【解决方案1】:

    另一个技巧是使用一个独立的分支,在项目的子树中签出,就像 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!一直认为这是一个很酷的设置,这很好地解释了如何实现它。
    • 你也在这里展示了创建断开分支的最简单方法!
    【解决方案2】:

    任何时候你想更新你的 todo 文件,你可以merge it first

    git checkout previousBranch todo
    

    注意:如果你不合并,你可以看到任何分支的待办事项内容:

    git show myBranch:todo
    

    如果您的 todo 文件位于存储库的根目录中,则它可以从任何路径运行,因为 git show 使用的路径是所述存储库顶层目录的绝对路径。

    这样你可以:

    • 查看仅在一个分支中有意义的任务
    • 有一个脚本连接所有分支的所有 todo 版本的内容 (git branch)

    【讨论】:

      【解决方案3】:

      使用不同的存储库。

      我保留了一个 ~/org 目录,emacs 会自动在 git 中跟踪并在我的机器上同步。我所有的待办事项等都在那里,但它与任何特定项目无关。如果我想要一个与特定项目相关联的,我会创建一个~/org/project.org

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-04-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-01-26
        • 2013-02-20
        • 1970-01-01
        相关资源
        最近更新 更多