我一直告诉自己和别人不要承诺。类路径和。项目文件并使用Maven。
不知何故,初级开发人员总是忽略某些规则,并提交这些文件,这是更好地为新手谁可以跳,并开始使用代码有这样的文件。
现在,从我的Angular ,我想尝试/做一些事情。当我克隆回购时,我将得到。类路径和。项目文件,当然,他们得到修改我的系统。
但是我希望它们不要被提交,并且在与Git同步时应该总是被忽略。这样我在本地系统中的更改就不会扰乱Git,而Git对这些文件的更改也不会扰乱我的本地文件。
我如何实现这一点?无论如何,以这种方式标记这些文件将被忽略?
5条答案
按热度按时间wn9m85ua1#
如果
.project
和.classpath
已经提交,则需要将它们从索引中删除(而不是从磁盘中删除)然后
.gitignore
就可以工作了(并且可以通过克隆添加和共享该文件)。例如,这个
gitignore.io/api/eclipse
文件将工作,其中包括:请注意,您可以在克隆时使用“模板目录”(确保您的用户将环境变量
$GIT_TEMPLATE_DIR
设置为所有人都可以访问的共享文件夹)。该模板文件夹可以包含一个**
info/exclude
**文件,带有ignore rules,您希望对 * 所有 * 存储库强制执行,包括任何用户都会使用的新存储库(git init
)。作者:Abdollah
当您更改索引时,需要提交更改并推送它。
然后从存储库中删除该文件。因此新手无法从存储库中检出文件
.classpath
和.project
。c9qzyr3d2#
在中添加下面的行。gitignore并将文件放在你的项目文件夹中
iyfamqjs3#
针对这种情况,git的解决方案是设置SKIP-WORKTREE BIT。仅运行以下命令:
当你想让git忽略已经由git管理并存在于索引上的文件的更改时,它会被使用。这是配置文件的常见用例。
运行
git rm --cached
不适用于问题中提到的场景。如果我把问题简单化,它说:如何让
.classpath
和.project
在repo上,同时每个人都可以在本地更改它,而git忽略了这个更改?正如我在接受的答案下评论的那样,
git rm --cached
的缺点是它会导致索引中的更改,因此您需要提交更改,然后将其推送到远程存储库。因此,.classpath
和.project
在仓库上不可用,而PO希望它们在那里,这样任何第一次克隆仓库的人都可以使用它。什么是SKIP-WORKTREE BIT?
基于git文档:
Skip-worktree位可以用一个(长)句子定义:当阅读一个条目时,如果它被标记为skip-worktree,那么Git会假装它的工作目录版本是最新的,并读取索引版本。虽然此位看起来类似于assume-unchanged位,但其目标与assume-unchanged位不同。当两者都被设置时,Skip-worktree也优先于assume-unchanged位。
更多详情请点击此处。
mec1mxoz4#
使用.gitignore文件。这允许您忽略某些文件。http://git-scm.com/docs/gitignore
下面是一个Eclipse示例,它处理类路径和项目文件:https://github.com/github/gitignore/blob/master/Global/Eclipse.gitignore
jucafojl5#
请在中添加以下行。gitignore,它将在项目克隆文件夹下可用.在这里,我将Project克隆的文件夹名称视为Code。
供参考:https://www.atlassian.com/git/tutorials/saving-changes/gitignore
通过这种方式,我们不需要运行任何命令,这些提及文件将不会在git或eclipse git中的未暂存更改下列出。