我的团队最近从ClearCase迁移到Git。一些团队成员习惯于劫持文件,在ClearCase中,这意味着对跟踪文件进行私人更改,这些更改是您不打算与任何人共享的。
ClearCase在执行相当于Git add / commit的操作时基本上忽略了这些文件,并且在执行相当于Git pull的操作时不会覆盖它们。
Git中是否有等价物?
注意我并不是说这是一个很好的工作流程,即使在ClearCase世界中也是如此。 “你为什么要这样做”的答案就是他们习惯了。
答案 0 :(得分:4)
“hijacked”的最接近的近似值是您为git索引指定必须忽略的文件:
(参见“Git: untrack a file in local repo only and keep it in the remote repo”)
git update-index --assume-unchanged -- afile.
该文件仍然是版本化的,但您在其中进行的任何修改都不会显示在git status
中,也不会被提交(显然不会被推送)
答案 1 :(得分:-1)
您始终可以进行更改,然后不提交更改。拉/合并/提交/签出时,更改将“浮动”;如果你尝试做一些会覆盖它们的东西(例如,你合并了一个触及同一文件的变化),它就会拒绝 - 此时你可以git stash
你的变化,执行操作,然后{{1}恢复你的更改。
如果您希望这些更改实际已在本地提交但未与其他任何人共享,我认为您最好的选择是将它们保留在您重新绑定(或保持合并)分支的本地分支上“实际开发”发生在,并且注意不要实际推送包含本地更改的提交。