我的团队最近从 ClearCase 迁移到了 Git。一些团队成员习惯于劫持文件,这在 ClearCase 中意味着对跟踪的文件进行私人更改,即您不打算与任何人共享的更改。
ClearCase 在执行相当于 Git add/commit 时基本上会忽略这些文件,并且在执行相当于 Git pull 时不会覆盖它们。
Git中是否有等价物?
注意我并不是说这是一个好的工作流程,即使在 ClearCase 世界中也是如此。“你为什么想要”的答案是他们已经习惯了。
“ 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
,也不会被提交(显然也不会被推送)
您始终可以进行更改,然后不提交它们。当您拉/合并/提交/结帐时,更改将“浮动”;如果你尝试做一些会覆盖它们的事情(例如,你合并一个触及同一个文件的更改),它会拒绝 - 此时你可以git stash
你的更改,执行操作,然后git stash (apply|pop)
恢复你的更改。
如果您希望这些更改实际上在本地提交但不与其他任何人共享,我认为您最好的选择是将它们维护在您重新定位到(或保持合并)“实际开发”发生的分支上的本地分支上,并且请注意不要实际推送包含本地更改的提交。