我正试图从我的git存储库中拆分一个子项目.然而,与Detach(move)子目录不同的是,在 单独的Git存储库中, 我没有它在它自己的子目录中(并且将其移入并执行上述操作仅在移动后生成历史记录).
我克隆了我想要将子项目拆分到它自己的存储库中的分支,并删除了子项目未使用的所有内容,所以基本上我可以使用它作为我子项目的存储库.
现在我想要删除不再存在于此存储库中的所有文件的历史记录,以便仅保留使其成为后代的文件的文件历史记录.
我认为必须使用git-filter-branch,但我无法弄清楚如何
提前谢谢了
所以我一直在筛选Go标准库中的一些代码,试图理解他们的图像和颜色包,但发现了一些我无法理解的代码.来自http://golang.org/src/pkg/image/color/color.go?s=794:834#L14
根据我的理解,它应该将8位预先alpha乘法的RGB值转换为16位的值,保存在32位变量中,以防止它们在图像关节成像中相乘时溢出.
我无法理解的是像r |= r << 8
我理解的线条这相当于r = r*2^8+r
因为r << 8
在右边插入零并且它们与旧的r相关.
对于r = 255的输入,这评估为65535 = 2 ^ 16 - 1这是预期的,但对于中间的值没有意义,这些值实际上没有映射到更大范围内的比例.例如,127 get被映射到32639,而我期望32767代表127.我错过了什么?我认为它与pre-alpha-multiplication有关...
func (c RGBA) RGBA() (r, g, b, a uint32) {
r = uint32(c.R)
r |= r << 8
g = uint32(c.G)
g |= g << 8
b = uint32(c.B)
b |= b << 8
a = uint32(c.A)
a |= a << 8
return
}
Run Code Online (Sandbox Code Playgroud)