如何在不触及已经-skip-worktree'd的配置文件的情况下git merge dev分支?

时间:2015-02-25 22:08:10

标签: git merge git-merge

我已经从branchA分支创建了dev,它包含一些我skip worktree'd的配置文件。我对非跳过工作文件进行了其他更改。我想将这些更改合并回dev,但不合并skip-worktreed文件。做这个的最好方式是什么?

总之,这就是我想要做的事情:

  1. 将我的更改合并到dev(但不是配置文件)
  2. 删除旧branchA
  3. 创建一个新的branchB,其中包含更新的dev分支以及来自branchA的旧配置文件

1 个答案:

答案 0 :(得分:1)

我认为稀疏结账可能会为此做,它会维护索引和工作树,因此不会检出所选文件并自动将它们标记为跳过工作树。

$ cat >.git/info/sparse-checkout <<\EOD
*
!/configs/*
EOD
$ git config core.sparsecheckout true
$ git checkout

the sparse checkout docs中的警告,在稀疏结账时,checkout更新索引和工作树以匹配所需的状态 - 所以任何不应该检出的文件和其索引条目都不是标记为跳过被删除(并且他们的索引条目被标记,git不再关心你放在那里)。你已经将你的配置标记为跳过,这不应该是一个问题,只要注意正在发生的事情。

我会说在一个临时回购中尝试对此进行一次测试肯定是

git clone -s . /tmp/deleteme

我自己并没有真正使用稀疏结账来进行除烟雾测试以外的任何事情。