2011-09-07 47 views
3

我希望能够将本地(从未跟踪,从未提交)的文件“粘”到某些git分支。可以Git“附加”本地文件到分支机构?

例如,我希望能够做这样的事情:

$ git checkout version1.0 
$ make 
$ ./myProject # 1.0 binary 
$ git stick-to-current-branch myProject 
$ 
$ git checkout version2.0 
$ make 
$ ./myProject # 2.0 binary 
$ git stick-to-current-branch myProject 
$ 
$ git checkout version1.0 
$ ./myProject # 1.0 binary from above 

我提出了“坚持到当前分支”命令,但有一些确实这是真的?我从不想提交这些文件;他们是分支机构特定的,但不应该被跟踪。

回答

3

不,没有选项可以“粘住”不被分支检出的工作目录中的git所跟踪的文件。然而,您可以在结帐时“生成”文件(例如使用post-checkout挂钩 - 在post-checkout挂钩中运行make,以便为分支/版本生成myProject二进制文件)

+0

好啊。不管怎么说,还是要谢谢你! – kristina

1

(注意:不是二进制文件)
如果内容myProject文件很容易识别,你可以为了生成基于当前分支该文件内容的正确使用filter driver

enter image description here

在每个结账时,你可以使用涂抹脚本生成的私人文件(如“未版本”)“myProject”的基础上,与所有的正确的价值观模板文件“myProject.tpl”所有不同的分支。

+1

我认为运行“后结帐'hook会是更好的选择,特别是因为这是一个二进制文件,我不认为这将适用于二进制文件? – manojlds

+0

@manojlds:这就是为什么我的答案以“note:not for binaries”开头;) – VonC

+0

对不起,只能看到图片:) – manojlds