关于gitignore:如何忽略git中的某些文件?

How to ignore certain files in git?

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

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

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


问题是,.gitignore只忽略以前没有跟踪的文件(由git add跟踪)。运行git reset name_of_file来解除文件的存储。如果还想从存储库中删除给定的文件(推送后),请使用git rm --cached name_of_file


如何忽略新文件

全球地

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

局部地

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

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

要忽略已更改的文件,将其列为"已修改",可以使用以下git命令:

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

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

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


将以下行添加到.gitignore:

1
/Hello.class

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

1
git rm Hello.class

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

1
*.class


1)创建一个.gitignore文件,只需创建一个.txt文件,并更改扩展名如下:

enter image description here

然后您必须更改名称,在命令上写下以下行:

1
 rename git.txt .gitignore

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

然后您可以打开该文件并写入不想添加到存储库中的所有文件。例如,我的如下所示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#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中,您必须编写以下行:

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

如果呼吸已经存在,则必须执行以下操作:

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

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

希望它有帮助!


忽视:

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

撤消忽略:

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


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

  • 忽略:git update-index --assume-unchanged
  • 用于恢复忽略的文件:git update-index --no-assume-unchanged

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

    1
    2
    *.o
    .*.swp


    你应该写些像

    1
    *.class

    进入你的.gitignore文件。


    从Github官方网站:

    如果您已经签入了一个文件,并且希望忽略它,那么如果您稍后添加一个规则,git将不会忽略该文件。在这些情况下,您必须首先通过在终端中运行以下命令来取消对文件的跟踪:

    1
    git rm --cached FILENAME

    1
    git rm --cached .

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

    *类

    *项目

    *PREFS

    *项目


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

    还有一个问题:如何让git忽略文件而不使用.git ignore?


    还可以使用.gitattributes(而不是.gitignore)排除整个文件类型。这个文件很容易解释,但我把内容粘贴在这里以供参考。注意最后一行(*.class binary)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    # 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

    使用.gitignore时,此网页可能会很有用并且节省时间。

    它会自动为不同的IDE和操作系统生成.gitignore文件,这些文件具有您通常不希望拉到Git存储库的特定文件/文件夹(例如,特定于IDE的文件夹和配置文件)。


    如果您已经提交了该文件,并且试图通过添加到.git ignore文件来忽略该文件,则git将不会首先忽略该文件,您必须执行以下操作

    1
    git rm --cached FILENAME

    如果您是新启动的项目,并且希望向git ignore添加一些文件,请按照以下步骤创建git ignore文件

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

    将以下行添加到.git/info/exclude:Helo.C类


    我对"dump.rdb"文件也有类似的问题。我尝试以各种方式将此文件添加到.gitignore文件,但只有一种方法有效。

    Add your filename, at the end of .gitignore file

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

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


    我试过--assume-unchanged.gitignore,但都没用。它们使切换分支变得困难,并且很难合并来自其他分支的更改。这是我的解决方案:

    提交时,我手动从更改列表中删除文件

    在我拉之前,我把更改过的文件藏起来。拉完后,我做了一个藏起来的爆竹。

  • 暂存
  • GIT拉力
  • 流行音乐流行歌曲
  • 步骤3有时会触发合并,并可能导致需要解决的冲突,这是一件好事。

    这允许我保留不与团队中其他人共享的本地更改。