20210428# Git

本文详细介绍了在Windows环境下Git遇到的文件名过长问题及其解决方案,以及如何配置和使用.gitignore文件来忽略不必要的文件。同时,提供了不同编程语言(Java、Python、Go)的通用.gitignore模板,帮助开发者更好地管理版本控制。
摘要由CSDN通过智能技术生成

backto 【20210331# 计算机学习】: https://blog.csdn.net/qq_17079255/article/details/115357016

软件安装

相关问题

git for windows下的Filename too long

从github克隆一个项目下发出现了错误:
在这里插入图片描述

git有可以创建4096长度的文件名,然而在windows最多是260,因为git用了旧版本的windows api,为此踩了个坑。
解决
打开git命令行:

git config --global core.longpaths true

–global是该参数的使用范围,只想对本版本库设置该参数,上述命令中去掉–global


.gitignore文件

gitignore说明

在使用git的过程中,一般我们总会有些文件无需纳入git的管理,也不希望它们总出现在未跟踪文件列表,这些文件通常是日志文件、临时文件、编译产生的中间文件、工具自动生成的文件等等。
此时我们可以创建一个名为 .gitignore 的文件,列出要忽略的文件模式,Git会根据这些模式规则来判断是否将文件添加到版本控制中。
注意:在windows下可以创建文件名为.gitignore.,保存之后系统会自动重命名为 .gitignore

格式规范

  • 所有空行或者以注释符号 # 开头的行都会被 Git 忽略
  • 可以使用标准的 glob 模式匹配
  • 匹配模式最后跟斜杠(/)说明要忽略的是目录
  • 要忽略指定模式以外的文件或目录,可以在模式前加上感叹号(!)进行取反

glob模式

所谓的 glob 模式是指 shell 所使用的简化了的正则表达式,匹配规则如下:

  • “*”:星号匹配零个或多个任意字符
  • []:匹配任何一个列在方括号中的字符,如[ab]匹配a或者匹配b
  • “?”:问号匹配一个任意字符
  • [n-m]:匹配所有在这两个字符范围内的字符,如[0-9]表示匹配所有0到9的数字

匹配示例

  • logs/:忽略当前路径下的logs目录,包含logs下的所有子目录和文件
  • /logs.txt:忽略根目录下的logs.txt文件
  • *.class:忽略所有后缀为.class的文件
  • !/classes/a.class:不忽略classes目录下的a.class文件
  • tmp/*.txt:只忽略tmp目录下的.txt文件
  • **/foo:可以忽略/foo, a/foo, a/b/foo等

定义全局的.gitignore文件

除了可以在项目中定义.gitignore文件外,还可以设置全局的.gitignore文件来管理所有Git项目的行为。
这种方式在不同的项目开发者之间是不共享的,是属于项目之上Git应用级别的行为。
可以在任意目录下创建相应的.gitignore文件,然后再使用以下命令配置Git
git config --global core.excludesfile ~/.gitignore

.gitignore规则不生效

.gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。所以一定要养成在项目开始就创建.gitignore文件的习惯。
解决方法就是先把本地缓存删除(改变成未track状态),然后再提交:

git rm -r --cached .
git add .
git commit -m "msg"

java开发通用模版

#java
*.class

#package file
*.war
*.ear
*.zip
*.tar.gz
*.rar
#maven ignore
target/
build/

#eclipse ignore
.settings/
.project
.classpatch

#Intellij idea
.idea/
/idea/
*.ipr
*.iml
*.iws

# temp file
*.log
*.cache
*.diff
*.patch
*.tmp

# system ignore
.DS_Store
Thumbs.db

Python开发通用模版

# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class

# Distribution / packaging
.Python
env/
build/
dist/
*.log

# pyenv
.python-version

# dotenv
.env

# virtualenv
.venv/
venv/
ENV/

# VSCode settings
.vscode

# IDEA files
.idea

# OSX dir files
.DS_Store

# Sublime Text settings
*.sublime-workspace
*.sublime-project

Python模板(gitee初始化自带)

# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class

# C extensions
*.so

# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST

# PyInstaller
#  Usually these files are written by a python script from a template
#  before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec

# Installer logs
pip-log.txt
pip-delete-this-directory.txt

# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
.hypothesis/
.pytest_cache/

# Translations
*.mo
*.pot

# Django stuff:
*.log
local_settings.py
db.sqlite3

# Flask stuff:
instance/
.webassets-cache

# Scrapy stuff:
.scrapy

# Sphinx documentation
docs/_build/

# PyBuilder
target/

# Jupyter Notebook
.ipynb_checkpoints

# IPython
profile_default/
ipython_config.py

# pyenv
.python-version

# celery beat schedule file
celerybeat-schedule

# SageMath parsed files
*.sage.py

# Environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/

# Spyder project settings
.spyderproject
.spyproject

# Rope project settings
.ropeproject

# mkdocs documentation
/site

# mypy
.mypy_cache/
.dmypy.json
dmypy.json

# Pyre type checker
.pyre/

Go开发通用模版

# Build
bulid/
*.exe

# dotenv
.env

# venv
/vendor/

# Log
*.log

# VSCode settings
.vscode

# IDEA files
.idea

# OSX dir files
.DS_Store

# Sublime Text settings
*.sublime-workspace
*.sublime-project

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值