如何为许多git分支维护和引用文件,单个副本?

时间:2014-11-24 14:11:02

标签: git git-branch

我遇到这种情况:readme.md分支中的master文件也需要位于gh-pages分支上。
如果我在一个分支上对文件进行任何更改,我需要在其他分支上复制它们。

有没有办法让普通的git分支可以被其他分支引用?
或者同时跟踪两个分支中的文件?

有关此问题的详细信息,请参阅https://github.com/anupam-arohi/lv

1 个答案:

答案 0 :(得分:0)

分支不是"简称"另一个,并且在分支中具有新版本的文件将需要具有所述新版本内容"复制"不知怎的,在另一个分支上。

您有两种方法:

  1. 一旦你在一个分支中更改了文件,你就签出另一个分支并复制它(我在" How to update a file across all branches in a Git repository"中提到了一般脚本)。 在你的情况下,那将是

    git checkout gh-pages
    git checkout master -- aFile
    
  2. 由于第一个选项不是自动的,您可以考虑通过content filter driver设置.gitattributes declaration,这是一个涂抹脚本,在结帐时会自动复制该文件的内容另一个分支。

    smudge
    (图片来自" Customizing Git - Git Attributes",来自" Pro Git book")

  3. 该脚本将get the content of the file from the other branch并替换签出分支中相同文件的内容。

    git show master:path/to/aFile > path/to/aFile