从Getting rebased中排除文件

时间:2015-07-23 06:36:00

标签: git

我最近从svn切换到git
在与谷歌及其craweler彻底讨论失败后,请查看我的情况如下:

方案

我在.gitignore中添加了文件,使git status 无声了解未跟踪的文件。

问题

问题是每次我rebase我的分支时,这个文件也会被覆盖,我在控制台上看到所有未跟踪的文件。

要求

有没有办法git ignore <.gitignore_file>这样可以排除这个文件在任何操作中被重新定位/覆盖?

2 个答案:

答案 0 :(得分:3)

您可以定义仅适用于.gitignore的自定义合并驱动程序,并始终保留本地版本 有关具体示例,请参阅“Git: How to rebase many branches (with the same base commit) at once?”。

合并驱动程序“import pandas as pd import numpy as np df['label'] = pd.Categorical(np.zeros(len(df.index)), categories=[ 'F', 'T']) df['label'][df.v1 > np.mean(df.v1)] = 'T' ”可以与keepMine关联,并在每个分支中的.gitignore文件中声明。
请参阅“How do I tell git to always select my local version for conflicted merges on a specific file?”。

.gitattributes

echo .gitignore merge=keepMine > .gitattributes git config merge.keepMine.name "always keep mine during merge" git config merge.keepMine.driver "keepMine.sh %O %A %B" 放在keepMine.sh中,而不是存储库中

$PATH

(对于# I want to keep MY version when there is a conflict # Nothing to do: %A (the second parameter) already contains my version # Just indicate the merge has been successfully "resolved" with the exit status exit 0 ,请参阅“How to stop a merge (yet again…)”)

答案 1 :(得分:3)

如果您提交.gitignore文件,我不明白为什么您应该遇到此问题。但是,没有什么能阻止您将.gitignore本身添加到.gitignore

至于排除文件的替代方法,您可以创建一个文件.git/info/exclude,它充当工作目录之外的本地.gitignore