忽略.classpath和.项目Git

rpppsulh  于 2023-04-28  发布在  Git
关注(0)|答案(5)|浏览(205)

我一直告诉自己和别人不要承诺。类路径和。项目文件并使用Maven。
不知何故,初级开发人员总是忽略某些规则,并提交这些文件,这是更好地为新手谁可以跳,并开始使用代码有这样的文件。
现在,从我的Angular ,我想尝试/做一些事情。当我克隆回购时,我将得到。类路径和。项目文件,当然,他们得到修改我的系统。
但是我希望它们不要被提交,并且在与Git同步时应该总是被忽略。这样我在本地系统中的更改就不会扰乱Git,而Git对这些文件的更改也不会扰乱我的本地文件。
我如何实现这一点?无论如何,以这种方式标记这些文件将被忽略?

wn9m85ua

wn9m85ua1#

如果.project.classpath已经提交,则需要将它们从索引中删除(而不是从磁盘中删除)

git rm --cached .project
git rm --cached .classpath

然后.gitignore就可以工作了(并且可以通过克隆添加和共享该文件)。
例如,这个gitignore.io/api/eclipse文件将工作,其中包括:

# Eclipse Core      
.project

# JDT-specific (Eclipse Java Development Tools)     
.classpath

请注意,您可以在克隆时使用“模板目录”(确保您的用户将环境变量$GIT_TEMPLATE_DIR设置为所有人都可以访问的共享文件夹)。
该模板文件夹可以包含一个**info/exclude**文件,带有ignore rules,您希望对 * 所有 * 存储库强制执行,包括任何用户都会使用的新存储库(git init)。
作者:Abdollah
当您更改索引时,需要提交更改并推送它。
然后从存储库中删除该文件。因此新手无法从存储库中检出文件.classpath.project

c9qzyr3d

c9qzyr3d2#

在中添加下面的行。gitignore并将文件放在你的项目文件夹中

/target/
/.classpath
/*.project
/.settings
/*.springBeans
iyfamqjs

iyfamqjs3#

针对这种情况,git的解决方案是设置SKIP-WORKTREE BIT。仅运行以下命令:

git update-index --skip-worktree .classpath .gitignore

当你想让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位。
更多详情请点击此处。

mec1mxoz

mec1mxoz4#

使用.gitignore文件。这允许您忽略某些文件。http://git-scm.com/docs/gitignore
下面是一个Eclipse示例,它处理类路径和项目文件:https://github.com/github/gitignore/blob/master/Global/Eclipse.gitignore

jucafojl

jucafojl5#

请在中添加以下行。gitignore,它将在项目克隆文件夹下可用.在这里,我将Project克隆的文件夹名称视为Code

/.metadata/
/.recommenders/
/target/
Code/**/.classpath
Code/**/.project
Code/**/*.class
Code/**/*.png
Code/**/.settings
Code/**/bin

供参考:https://www.atlassian.com/git/tutorials/saving-changes/gitignore
通过这种方式,我们不需要运行任何命令,这些提及文件将不会在git或eclipse git中的未暂存更改下列出。

相关问题