1. git免密码进行提交-配置文件#

1.1 需求#

在平时编写文档的过程中,需要经常bash提交代码(可能还有更快捷的方式),本来想自己编写批处理文件进行自动化处理,发现原来git本身就有这样的设计。开始也是百度了各种博客,从config入手,但是总是遇fatal: unable to get credential storage lock: File exists错误,升级了git客户端也不好使,最终找到了可行的解决方法。

1.2 免密提交设置#

这个设置只针对指定项目,不是全局设置。

找到项目的.git目录里的config文件,文件的内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
symlinks = false
ignorecase = true
[remote "origin"]
url = https://github.com/babachuan/Spring.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
[gui]
wmstate = normal
geometry = 1055x555+128+128 229 251

只需要在remote的url设置成如下格式即可:

1
url = https://账号名:密码@github.com/babachuan/Spring.git

参考博客

2. 对Github编写的Markdown文件自动生成目录#

平时在编写README.md的时候,使用toc标签并不能在github上自动生成目录,在网上找了一篇帖子,用python目录自动生成,把脚本改良后如下:

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
#!/usr/bin/evn python
#-*-coding:utf-8-*-
import re
import string

lines=open("I:\\个人\\博客管理\\Github\\Spring\\spring\\spring-conditionbeans\\README.md",encoding='utf-8')
print('<nav>')
print('<a href="#"></a><br/>')
# 解析内容并生成目录
for line in lines:
if line.startswith("#"):
line = line.strip().split(" ", 1)

# 缩进
indentation = "&nbsp;" * 4 * (len(line[0]) - 1)

# 标题
title = line[1].replace(" ", "&nbsp;")

# 去掉特殊字符,空格替换为-,注意标题中尽量不要出现@ # / _ 等特殊字符,以免github定位不准
herf = re.compile(r'<[^>]+>', re.S).sub('', line[1])
herf = herf.translate(str.maketrans('', '', string.punctuation))
herf = herf.replace(" ", "-")

out_line = "%s<a href=\"#%s\">%s</a><br/>" % (indentation, title, herf)

print(out_line)
lines.close()
print('</nav>')

注意

  • 使用时需要指定README.md路径lines=open("xxx\\README.md",encoding='utf-8')
  • 在编写Markdown文件的时候,不要使用#开头做注解
  • 将打印处理的结果直接复制粘贴到MD文件的开头处即可。

3.Git过滤文件#

在平时使用git的过程中,经常需要提交代码,但是像.idea和class文件又不需要提交,所以需要进行过滤,方法如下:

第一步:添加.gitignore文件

往项目根目录添加一个文件”.gitignore”。这文件和”.git”文件夹同级。

可以在Git bash里执行touch .gitignore命令

第二步:设置过滤条件

1
2
3
spring/*/.idea //把第三级目录下的.idea文件顾虑
spring/*/*.iml //把第三级目录下的以.iml结尾的文件顾虑
spring/*/target //把第三级目录下的target文件夹过滤

第三步:把.gitignore文件提交并且push到服务器

其它的协作成员可以通过pull获取这个文件,其它人的过滤规则保持一致了。

1.如果新建一个空的Git仓库。直接拉取就可以了。

2.如果是一个已经使用了Git仓库,如果需要应用规则,则需要通过命令把相应要过滤的目录

的缓存删除。

git rm –cached <文件名> 删除文件的缓存

git rm –cached -r <目录名> 删除目录下的所有文件的缓存

通过上面的命令把缓存删除后,commit后再push到服务器。

其它的团队成员可以直接pull,过滤功能就能正常使用了。

4.pull报错SSL#

在pull仓库的时候报错:[Git Pull Failed: unable to access '***': SSL certificate problem: self signed certificate in certificate chain])

解决方案如下

1
打开控制台运行:【git config --global http.sslVerify false】