是否可以一直保留一些文件?
我想要的是:
如果有两个分支(A)和(B),则它们具有相同的文件。例如,
在分支(A)中,文件“setup”具有以下内容:
this is setup
in a branch A
在分支(B)中,文件“setup”具有以下内容:
this is setup
in a branch B
这些分支没有未提交的文件(不同分支中相同文件的不同提交)。
目标是在合并这些分支后保持这些文件不被触及。
How to tell Git to always select my local version和Prevent merging a file from master with Git中的解决方案不起作用。因为它们仅在合并时发生冲突时起作用。 (好吧,如果我们合并这两个分支并且它可以工作一次就会发生冲突。但是如果我们合并(A)到(B),然后(B)到(A),那么文件变成相同的两个分支)
GIT是否有这种可能性?
答案 0 :(得分:4)
不,git没有简单的方法可以做到这一点,因为git如何处理合并。
我可能错了,但似乎你想保持配置文件不被合并。是对的吗?因为有更好的/其他方式来处理配置文件。
This页面解释了如何处理多种情况的一些解决方案。
要点:
答案 1 :(得分:1)
如果你真的需要让它们与主分支和开发分支不同,我建议在Ikke' answer和版本2值文件(一个用于主,和一个用于开发分支),以及一个模板文件。
拥有多个值文件意味着他们不会在分支之间合并问题(每个用户只修改与当前分支相关的值文件)。
模板文件用于帮助内容 filter driver 在结帐时生成私有文件,该文件代表实际的配置文件(使用正确的语法,来自模板文件和正确的值,使用正确的值文件after the current branch)
答案 2 :(得分:1)
在文件所在的目录中创建一个.gitignore
文件,然后将文件名放入其中!
然后运行推荐
git rm -cached path_to_setup.file
因此,它将忽略所有操作中的文件,如merge,pull,push,......
答案 3 :(得分:1)
有点长,但是使用--no-commit
进行初始合并步骤,然后签出原始文件以确保它没有被覆盖,然后提交。
目前git邮件列表上还有一个“预合并挂钩”,这也可能为您提供一些选择。 git list
你也可以尝试查看git源代码并在.gitdonotmerge
的行中添加.gitignore
文件(到同一目录)(重新使用所有现有代码;-)和更新合并策略选项,以便解决这个适度常见的麻烦。抓你自己的开源痒的乐趣!
答案 4 :(得分:0)
一个选项是git update-index --assume-unchanged [file]
,它将在暂存和提交时忽略对文件的更改,但会将其保留在存储库中。这是一个危险的命令,因为当您 想要提交更改时,您需要记住您已假设文件未更改。此外,我还不完全确定合并后的行为方式。