【发布时间】:2013-12-11 16:50:30
【问题描述】:
我需要在本地和 Git 中处理 file.txt 的不同内容。我希望 Git 不要告诉我该文件已更改。
这可能吗?
【问题讨论】:
标签: git version-control atlassian-sourcetree
我需要在本地和 Git 中处理 file.txt 的不同内容。我希望 Git 不要告诉我该文件已更改。
这可能吗?
【问题讨论】:
标签: git version-control atlassian-sourcetree
实际上,您想要的是--skip-worktree,而不是--assume-unchanged。 Here's a good explanation why.
所以git update-index --skip-worktree file.txt
TLDR; --assume-unchanged 用于性能,用于不会更改的文件(如 SDK); --skip-worktree 适用于存在于远程但您希望对其进行本地(未跟踪)更改的文件。
【讨论】:
git update-index ...);我们中的一些人是真正的 git 新手,我不得不阅读下面@janos 的答案来补充你的答案;)
也许您想“假装”文件实际上没有更改?你可以这样做:
git update-index --assume-unchanged file.txt
稍后撤消:
git update-index --no-assume-unchanged file.txt
查看以这种方式标记的文件列表:
git ls-files -v | grep '^[a-z]'
更新
正如 cmets 所指出的,这很可能不是您想要做的。 better answer 已由 @Tom Auger 发布,请改用它。
【讨论】:
如果修改 .gitignore 文件不是一个选项(因为它被检入 git 本身),请考虑使用 .git/info/exclude。
【讨论】:
可以不用.gitignore文件吗?
【讨论】:
您只需要单击源树中文件名右侧未暂存文件部分的more 按钮。点击ignore,让源码树对该文件或所有相同类型的文件执行你想要的操作。
【讨论】:
SOURCETREE 终端代码
添加忽略文件:
git update-index --skip-worktree index.php
提取忽略文件:
git update-index --no-skip-worktree index.php
列出忽略文件:
git ls-files . --ignored --exclude-standard --others
【讨论】:
在 Eclipse Luna 中,这可以通过执行以下操作 [使用 EGit 插件] 来完成: 右键文件->团队->高级->假设不变
【讨论】: