首页 > 其他分享 >git忽略提交(git如何忽略某个文件的提交)

git忽略提交(git如何忽略某个文件的提交)

时间:2023-09-04 21:37:44浏览次数:45  
标签:文件 git 忽略 Git 提交 规则 gitignore

在使用Git的过程中,我们喜欢有的文件比如日志,临时文件,编译的中间文件等不要提交到代码仓库,这时就要设置相应的忽略规则,来忽略这些文件的提交。

Git 忽略文件提交的方法

有三种方法可以实现忽略Git中不想提交的文件。

1、在Git项目中定义 .gitignore 文件

这种方式通过在项目的某个文件夹下定义 .gitignore 文件,在该文件中定义相应的忽略规则,来管理当前文件夹下的文件的Git提交行为。

.gitignore 文件是可以提交到公有仓库中,这就为该项目下的所有开发者都共享一套定义好的忽略规则。

在 .gitingore 文件中,遵循相应的语法,在每一行指定一个忽略规则。如:

*.log
*.temp
/vendor2\

2、在Git项目的设置中指定排除文件

这种方式只是临时指定该项目的行为,需要编辑当前项目下的 .git/info/exclude 文件,然后将需要忽略提交的文件写入其中。

需要注意的是,这种方式指定的忽略文件的根目录是项目根目录。

3、定义Git全局的 .gitignore 文件

除了可以在项目中定义 .gitignore 文件外,还可以设置全局的 git .gitignore 文件来管理所有Git项目的行为。这种方式在不同的项目开发者之间是不共享的,是属于项目之上Git应用级别的行为。

这种方式也需要创建相应的 .gitignore 文件,可以放在任意位置。然后在使用以下命令配置Git:

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

 

Git忽略规则

Git忽略规则优先级

在 .gitingore 文件中,每一行指定一个忽略规则,Git 检查忽略规则的时候有多个来源,它的优先级如下(由高到低):

从命令行中读取可用的忽略规则

当前目录定义的规则

父级目录定义的规则,依次递推

$GIT_DIR/info/exclude 文件中定义的规则

core.excludesfile中定义的全局规则

Git 忽略规则匹配语法

.gitignore文件中的忽略规则

在 .gitignore 文件中,每一行的忽略规则的语法如下:

空格不匹配任意文件,可作为分隔符,可用反斜杠转义

开头的文件标识注释,可以使用反斜杠进行转义

开头的模式标识否定,该文件将会再次被包含,如果排除了该文件的父级目录,则使用 ! 也不会再次被包含。可以使用反斜杠进行转义

结束的模式只匹配文件夹以及在该文件夹路径下的内容,但是不匹配该文件

开始的模式匹配项目跟目录
如果一个模式不包含斜杠,则它匹配相对于当前 .gitignore 文件路径的内容,如果该模式不在 .gitignore 文件中,则相对于项目根目录

** 匹配多级目录,可在开始,中间,结束

通用匹配单个字符

[] 通用匹配单个字符列表

常用匹配示例:

bin/: 忽略当前路径下的bin文件夹,该文件夹下的所有内容都会被忽略,不忽略 bin 文件

/bin: 忽略根目录下的bin文件

/*.c: 忽略 cat.c,不忽略 build/cat.c

debug/*.obj: 忽略 debug/io.obj,不忽略 debug/common/io.obj 和 tools/debug/io.obj

**/foo: 忽略/foo, a/foo, a/b/foo等

a/**/b: 忽略a/b, a/x/b, a/x/y/b等

!/bin/run.sh: 不忽略 bin 目录下的 run.sh 文件

*.log: 忽略所有 .log 文件

config.php: 忽略当前路径的 config.php 文件

.gitignore规则不生效

.gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。

解决方法就是先把本地缓存删除(改变成未track状态),然后再提交:

git rm -r --cached . git add . git commit -m 'update .gitignore'

 

以上既是Git忽略提交文件的3种方法及Git忽略规则,阅读更多关于Git使用方法

出处 git忽略提交(git如何忽略某个文件的提交)_git忽略指定文件_子弥的博客-CSDN博客 TRANSLATE with x English
Arabic Hebrew Polish
Bulgarian Hindi Portuguese
Catalan Hmong Daw Romanian
Chinese Simplified Hungarian Russian
Chinese Traditional Indonesian Slovak
Czech Italian Slovenian
Danish Japanese Spanish
Dutch Klingon Swedish
English Korean Thai
Estonian Latvian Turkish
Finnish Lithuanian Ukrainian
French Malay Urdu
German Maltese Vietnamese
Greek Norwegian Welsh
Haitian Creole Persian  
  TRANSLATE with COPY THE URL BELOW Back EMBED THE SNIPPET BELOW IN YOUR SITE Enable collaborative features and customize widget: Bing Webmaster Portal Back

标签:文件,git,忽略,Git,提交,规则,gitignore
From: https://www.cnblogs.com/Lonelychampion/p/17678118.html

相关文章

  • Git常用命令
    Git常用命令gitconfig--globaluser.name用户名设置用户签名gitconfig--globaluser.email邮箱设置用户签名gitinit初始化本地库gitstatus查看本地库状态gitadd文件名添加到暂存区gitcommit-m"日志信息"文件名提交到本地库gitreflog查看历史记录g......
  • 如何提交站点地图
    什么是站点地图?我是否需要此报告?站点地图是网站上的一个文件,可以让Google知道应该了解网站上的哪些网页。如果您使用了网站托管服务(比如Squarespace或Wix),这些服务可能会为您管理站点地图,这样的话,您就无需创建自己的站点地图,也无需使用此报告。若想了解站点地图的相关信息,请搜......
  • git深入研究
    1、Git是分布式的,SVN不是:这是Git和其它非分布式的版本控制系统,例如SVN,CVS等,最核心的区别。2、Git把内容按元数据方式存储,而SVN是按文件:所有的资源控制系统都是把文件的元信息隐藏在一个类似.svn、.cvs等的文件夹里。3、Git分支和SVN的分支不同:分支在SVN中一点都不......
  • 虚拟机部署gitlab 接口502 含泪做笔记 ==> /var/log/gitlab/nginx/gitlab_error.log <
    行不通勿喷,谢谢!!**虚拟机部署gitlab接口502**gitlab-ctltail查看具体报错信息:==>/var/log/gitlab/nginx/gitlab_error.log<==2023/09/0416:45:44[crit]42817#0:*2connect()tounix://var/opt/gitlab/gitlab-rails/sockets/gitlab.socketfailed(13:Permissionde......
  • homebrew安装软件出现git问题fatal: not in a git directory,Error: Command failed w
    homebrew安装软件出现git问题问题fatal:notinagitdirectoryError:Commandfailedwithexit128:git问题查找1.brew-v查看问题logsuyf@suyfdeMac-mini~%brew-vHomebrew4.0.18-18-g64259a4fatal:detecteddubiousownershipinrepositoryat'/op......
  • 应用对接gitlab api
    公司有个项目需要对接gitlab相关api。1gitlab登陆gitlab提供给我们oauth2登陆接口。我们可以通过这个接口实现gitlab认证登陆,并返回给我们一个token作为系统登录凭证。官网:https://docs.gitlab.com/ee/integration/oauth_provider.html首先,gitlab上申请一个ApplicationID,后......
  • git submodule 子模块的管理和使用
    Git子模块是Git仓库中的一个特殊类型的存储库,允许您将一个Git仓库嵌套在另一个Git仓库中。这对于管理项目的依赖或者在多个项目之间共享代码非常有用。以下是有关如何管理和使用Git子模块的一些基本操作:添加子模块要将子模块添加到您的Git仓库中,可以使用以下命令:gitsubmodule......
  • git 设置记住密码和清除密码
    git设置记住密码和清除密码 1.永久记住密码该命令会记住密码,执行一次gitpull或gitpush等需要输入密码的命令,输入一次密码,之后就都不必再输入了gitconfig--globalcredential.helperstore复制2.设置记住密码(默认有效期为15分钟)每15分钟会......
  • git 命令合集 没事给自己看的
    gitremote命令  gitremote-v 作用是显示所有远程仓库  gitremoteshowxx(xx为远程地址的别名)显示某个远程仓库的信息 gitremoteadd[name][url] 作用是添加远程版本库 gitremotermname  gitremoterenameold_namenew_name TRANSLATE......
  • git 错误 Reinitialized existing Git repository
      find.-name".git"rm-rf./.git参考:https://blog.csdn.net/sinat_28375239/article/details/112786267......