如何忽略git中的某些文件?

时间:2010-11-29 22:12:24

标签: git gitignore

我有一个包含文件Hello.java的存储库。当我编译它时,会生成一个额外的Hello.class文件。

我在Hello.class文件中为.gitignore创建了一个条目。但是,该文件似乎仍然被跟踪。

我想知道如何让git忽略Hello.class

24 个答案:

答案 0 :(得分:726)

问题是.gitignore忽略之前未跟踪过的文件(git add)。运行git reset name_of_file以取消暂存文件并保留该文件。如果您还想从存储库中删除给定文件(推送后),请使用git rm --cached name_of_file

答案 1 :(得分:185)

如何忽略新文件

全球

将路径添加到您要忽略的.gitignore文件中(并提交它们)。这些文件条目也适用于签出回购的其他人。

本地

将路径添加到您要忽略的.git / info / exclude文件中。这些文件条目仅适用于您的本地工作副本。

如何忽略已更改的文件(暂时)

为了忽略已更改的文件列为已修改,您可以使用以下git命令:

git update-index --assume-unchanged <file>

要恢复无知,请使用以下命令:

git update-index --no-assume-unchanged <file>

答案 2 :(得分:147)

将以下行添加到.gitignore:

/Hello.class

这将从git中排除Hello.class。如果您已经提交了它,请运行以下命令:

git rm Hello.class

如果要从git中排除所有类文件,请将以下行添加到.gitignore:

*.class

答案 3 :(得分:97)

1)创建一个.gitignore文件,为此,您只需创建一个.txt文件并按以下步骤更改扩展名:

enter image description here

然后你必须改变在cmd上写下面一行的名称:

 rename git.txt .gitignore

其中git.txt是您刚刚创建的文件的名称。

然后,您可以打开该文件并编写您不想在存储库中添加的所有文件。例如我的看起来像这样:

#OS junk files
[Tt]humbs.db
*.DS_Store

#Visual Studio files
*.[Oo]bj
*.user
*.aps
*.pch
*.vspscc
*.vssscc
*_i.c
*_p.c
*.ncb
*.suo
*.tlb
*.tlh
*.bak
*.[Cc]ache
*.ilk
*.log
*.lib
*.sbr
*.sdf
*.pyc
*.xml
ipch/
obj/
[Bb]in
[Dd]ebug*/
[Rr]elease*/
Ankh.NoLoad

#Tooling
_ReSharper*/
*.resharper
[Tt]est[Rr]esult*

#Project files
[Bb]uild/

#Subversion files
.svn

# Office Temp Files
~$*

一旦你有了这个,你需要将它添加到你的git存储库。您必须将文件保存到存储库所在的位置。

然后在你的git bash中你必须写下以下一行:

git config --global core.excludesfile ~/.gitignore_global

如果存储库已经存在,那么您必须执行以下操作:

1)git rm -r --cached .
2)git add .
3)git commit -m ".gitignore is now working"

如果步骤2不起作用,那么您应该编写要添加的文件的孔路径。

希望它有所帮助!

答案 4 :(得分:50)

忽略:

git update-index --assume-unchanged <path/to/file>

撤消忽略:

git update-index --no-assume-unchanged <path/to/file>

答案 5 :(得分:42)

您可以使用以下方法忽略/不忽略跟踪文件中的更改。

  1. 忽略:git update-index --assume-unchanged <file>
  2. 用于还原已忽略的文件:git update-index --no-assume-unchanged <file>

答案 6 :(得分:22)

在.git所在的目录中创建.gitignore。您可以列出以换行符分隔的文件。您还可以使用通配符:

*.o
.*.swp

答案 7 :(得分:11)

你应该写点像

*.class

进入.gitignore文件。

答案 8 :(得分:10)

来自官方GitHub网站:

如果您已经签入了文件,并且想要忽略它,那么如果稍后添加规则,Git将不会忽略该文件。在这些情况下,您必须首先在终端中运行以下命令来解除文件:

git rm --cached FILENAME 

git rm --cached .

答案 9 :(得分:7)

添加.gitignore,您要忽略哪些文件

*。类

*。项目

*。首选项

*。项目

答案 10 :(得分:6)

  1. 转到.gitignore文件,然后添加要忽略的文件的条目
  2. 运行git rm -r --cached .
  3. 现在运行git add .

答案 11 :(得分:5)

通过创建.gitignore文件。有关详细信息,请参阅此处:Git Book - Ignoring files

同时检查一下:How do you make Git ignore files without using .gitignore?

答案 12 :(得分:3)

您还可以使用.gitattributes(而不是.gitignore)来排除整个文件类型。该文件非常明显,但我在此处粘贴内容以供参考。注意最后一行(* .class binary)

# Denote all files that are truly binary and should not be modified.
*.png binary
*.jpg binary
*.gif binary
*.ico binary
*.mo binary
*.pdf binary
*.phar binary
*.class binary

答案 13 :(得分:2)

使用.gitignore时,此webpage可能会有用且节省时间。

它会自动为不同的IDE和操作系统生成.gitignore文件,其中包含您通常不想提取到git存储库的特定文件/文件夹(例如,特定于IDE的文件夹和配置文件)。

答案 14 :(得分:2)

Add the following line to .git/info/exclude:
Hello.class

答案 15 :(得分:2)

我在文件&#34; dump.rdb&#34;中遇到了类似的问题 我尝试以各种方式将此文件添加到.gitignore文件中,但只有一种方法可用。

  

在.gitignore文件末尾添加您的文件名

注意:在其他任何地方添加文件都不起作用。

例如,请参阅:https://gitlab.com/gitlab-org/gitlab-ce/raw/b3ad3f202478dd88a3cfe4461703bc3df1019f90/.gitignore

答案 16 :(得分:2)

如果您已经提交了文件,并且尝试通过添加到.gitignore文件来忽略它,那么git不会首先忽略它

git rm --cached FILENAME

如果您是重新启动项目,并且想要向gitignore添加一些文件,请按照以下步骤创建gitignore文件

1. Navigate to your git Repo.
2. Enter "touch .gitignore" which will create a .gitignore file.

答案 17 :(得分:0)

我尝试过--assume-unchanged.gitignore,但效果不佳。他们很难切换分支,很难合并其他人的变化。这是我的解决方案:

当我提交时,我手动删除列表中的文件

之前,我隐藏更改的文件。拉完后,我会做一个 stash pop

  1. git stash
  2. git pull
  3. git stash pop
  4. 步骤3有时会触发合并,并可能导致您需要解决的冲突,这是一件好事。

    这使我可以保留未与团队中其他人共享的本地更改。

答案 18 :(得分:0)

我尝试过-

  1. 列出我们要忽略的文件

git status .idea/xyz.xml .idea/pqr.iml Output .DS_Store

  1. 复制步骤1的内容并将其附加到.gitignore文件中。

echo "git status .idea/xyz.xml .idea/pqr.iml Output .DS_Store" >> .gitignore

  1. 验证

git status .gitignore

同样,我们可以使用directoryname/*在git状态下添加要忽略的目录及其所有子目录/文件,然后从src目录执行此命令。

答案 19 :(得分:0)

用于编译的代码。只是写

findXXXX

答案 20 :(得分:0)

dictionary = {'n': 5, 'a': [1, 2, 3, 4, 5]}
assign(dictionary)
print(n)
print(a)

>> 5
>> [1, 2, 3, 4, 5]

然后添加您要忽略的文件

然后提交并推送到您的存储库

答案 21 :(得分:0)

首先创建一个.gitignore文件,我们必须在其中存储要忽略的文件和目录的名称。 忽略目录;

name_of_directory/

忽略文件;

name_of_file

我们不需要提供要忽略的文件或目录的完整路径,只需提供其名称即可。

如果要忽略具有相同扩展名的所有文件;

*.pyc  #will ignore all files with pyc extention

答案 22 :(得分:0)

您也可以使用例如 SourceTree 并在添加到分支并被修改的文件上按 ppm,然后选择“停止跟踪”。这个文件现在将被指定一个问号图标,当你再次在这个文件上 ppm 时,你现在可以选择“忽略”。这将通过它的相对路径将此特定文件添加到 gitgnore。

答案 23 :(得分:0)

直接来自 Atlassian:https://www.atlassian.com/git/tutorials/saving-changes/gitignore

如果您想忽略过去提交的文件,则需要从存储库中删除该文件,然后为其添加 .gitignore 规则。

--cached 选项与 git rm 一起使用意味着该文件将从您的存储库中删除,但会作为一个被忽略的文件保留在您的工作目录中。

您的工作目录中应该仍然有该文件,但除非您强制执行,否则它将无法推送到您的远程存储库。