【发布时间】:2011-02-14 12:53:30
【问题描述】:
例如我想修改登录页面,所以它会自动记录我。
我希望这些更改仅在我的开发站上起作用,并且在推送中不可见。如果我在一个分支上完成它,那么我将不得不在每次推送之前以某种方式取消合并该更改。
git 支持吗?
【问题讨论】:
例如我想修改登录页面,所以它会自动记录我。
我希望这些更改仅在我的开发站上起作用,并且在推送中不可见。如果我在一个分支上完成它,那么我将不得不在每次推送之前以某种方式取消合并该更改。
git 支持吗?
【问题讨论】:
如果你至少有 Git 1.7.0,你可能会喜欢这个“管道”:
git update-index --skip-worktree -- path
来自git update-index manpage under “Skip-worktree bit”:
Skip-worktree 位可以定义在一个(长)句子中:阅读时 一个条目,如果它被标记为 skip-worktree,那么 Git 会假装它 工作目录版本是最新的并读取索引版本 而是。
详细来说,“读取”意味着检查文件是否存在,读取文件 属性或文件内容。工作目录版本可能是 存在或不存在。
“skip-worktree 位”是sparse checkout mechanism documented in the git read-tree manpage` 的基础。
在旧版本的 Git (git update-index --assume-unchanged) 中有一个相关的“位”,但不应将其用于 OP 的目的。 It seems like it might be useful for the OP's situation,但是Git's maintainer has said that its contract (the “promise”) makes it unsuitable for such purposes。
【讨论】:
git update-index --skip-worktree -- path?
为什么不使用设置gitattributes filter driver?
每次签出您的目录时,如果满足特定条件(如“这是或不是您的开发站”,它将通过 smudge 步骤中的脚本检查该文件(并且仅该文件) ) 并将相应地修改内容。clean 步骤将恢复其内容或至少忽略该特定修改。
【讨论】:
我不确定我是否理解这个问题:你为什么不能直接分支?拥有master 您的主要公共分支,并继续在master 上重新设置您的私有分支(或将主分支与您的私有分支合并)。永远不要将机会带到 master,只将来自 master 的更改带到您的私有分支。
如果您碰巧在您的私有分支上进行了更改并希望与master 共享,那么将更改挑选到 master 上是没有问题的。
【讨论】: