我有一个带文件的存储库Hello.java
。当我编译它时,Hello.class
会生成一个附加文件。
我Hello.class
在.gitignore
文件中创建了一个条目。但是,该文件似乎仍然被跟踪。
如何让Git忽略Hello.class
?
我有一个带文件的存储库Hello.java
。当我编译它时,Hello.class
会生成一个附加文件。
我Hello.class
在.gitignore
文件中创建了一个条目。但是,该文件似乎仍然被跟踪。
如何让Git忽略Hello.class
?
Answers:
问题在于,.gitignore
仅忽略(by git add
)之前未跟踪的文件。运行git reset name_of_file
以取消登台文件并保留它。如果您还想从存储库中删除给定文件(在推送之后),请使用git rm --cached name_of_file
。
git rm --cached name_of_file
将从git存储库中删除文件。即使将其添加到.gitignore文件中。那并不忽略正在删除。
git reset name_of_file
删除跟踪,但不删除文件。
如何忽略新文件
全球范围
将路径添加到您要忽略的.gitignore
文件中(并提交)。这些文件条目也将适用于其他签出存储库的人。
在本地
将路径添加到您要忽略的.git/info/exclude
文件中。这些文件条目仅适用于本地工作副本。
如何忽略更改的文件(临时)
为了忽略已更改的文件被列为已修改文件,可以使用以下git命令:
git update-index --assume-unchanged <file>
要恢复该无知,请使用以下命令:
git update-index --no-assume-unchanged <file>
local
忽略git 的步骤,并重新启动了系统,它仍然显示可以直接运行。
update-index
技巧,绝对可以避免更改.gitignore
文件,Git随后会跟踪它!
将以下行添加到.gitignore中:
/Hello.class
这将从git中排除Hello.class。如果已经提交,请运行以下命令:
git rm Hello.class
如果要从git中排除所有类文件,请在.gitignore中添加以下行:
*.class
Hello.class
到.gitignore
将忽略Hello.class
在任何子目录中调用的任何文件。如果仅打算忽略与文件Hello.class
位于同一目录中的.gitignore
文件,请改用/Hello.class
一行。
.gitignore
文件放在哪里?
.gitignore
在git项目中放置任何位置-如果路径以开头,则该路径/
将相对于.gitignore
文件的位置;否则,它将递归引用当前目录及其后代目录中的文件。
1)创建一个.gitignore
文件。为此,您只需创建一个.txt
文件并按如下所示更改扩展名:
然后,您必须更改名称,在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
如果存储库已经存在,那么您必须执行以下操作:
git rm -r --cached .
git add .
git commit -m ".gitignore is now working"
如果第2步不起作用,则应编写要添加的文件的整个路径。
无视:
git update-index --assume-unchanged <path/to/file>
撤消忽略:
git update-index --no-assume-unchanged <path/to/file>
.gitignore
在.git所在的目录中创建一个。您可以在其中列出文件,并用换行符分隔。您还可以使用通配符:
*.o
.*.swp
.gitignore
文件中(除非项目强制使用该工具)是一种好习惯。您可以将自己喜欢的工具的模式放入每个用户的排除文件(set core.excludesFile
)中;它们将在您所有的存储库中使用。例如git config --global core.excludesFile "$HOME/.git-user-excludes"
,然后将它们放在该文件中。
你应该写类似
*.class
到您的.gitignore
文件中。
*.class
,.gitignore
以使git忽略所有以结尾的文件.class
。
通过创建.gitignore文件。有关详细信息,请参见此处:Git Book-忽略文件
还要检查这一点:如何在不使用.gitignore的情况下使Git忽略文件?
如果您已经提交了文件,并且试图通过添加到.gitignore
文件中来忽略它,那么Git将不会忽略它。为此,您首先必须执行以下操作:
git rm --cached FILENAME
如果您是重新启动项目,并且想要向Git忽略添加一些文件,请按照以下步骤创建Git忽略文件:
.gitignore
文件。您还可以使用.gitattributes(而不是.gitignore)来排除整个文件类型。该文件非常不言自明,但是我将其内容粘贴在这里以供参考。注意最后一行(* .class二进制):
# 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
我对文件“ dump.rdb”有类似的问题。
我尝试以各种方式将此文件添加到.gitignore文件,但是只有一种方式可以工作。
在.gitignore文件的末尾添加您的文件名
注意:无法在其他任何地方添加文件。
例如,请参阅:https : //gitlab.com/gitlab-org/gitlab-ce/raw/b3ad3f202478dd88a3cfe4461703bc3df1019f90/.gitignore
使用此网页时,可能会有用且省时.gitignore
。
它会使用您通常不希望拉到Git存储库的特定文件/文件夹(例如,IDE特定的文件夹和配置文件)为不同的IDE和操作系统自动生成.gitignore文件。
git rm -r --cached .
git add .