Git 基础
.gitingore
.gitignore忽略规则
!
开头:排除应被忽略/
结尾:忽略文件夹/
开头:git仓库根目录路径开始(可省略)遵循一定的正则表达式
*
:多个字符,不包括/
,因此多层级目录需要一一指定?
:单个字符[]
:匹配其中候选字符
.gitignore配置方式
仓库根目录创建
.gitignore
文件,添加忽略规则- 忽略规则针对当前项目
.gitignore
文件默认随仓库分发,所有人共用忽略规则 (当然可以在.gitignore
中配置忽略.gitignore
)
设置全局忽略文件,对所有git项目适用
1
git config --global core.excludesfile /path/to/.gitignore
修改
.git/info/exclude
文件,添加忽略规则- 对单一项目有效
- 非所有人共用忽略规则
Git配置/config
配置文件、配置类型
--system
:系统全局配置,配置文件/etc/gitconfig
--global
:用户全局配置,配置文件$HOME/.gitconfig
、$HOME/.config/git/config
--local
:局部repo配置,配置文件repo/.git/config
1
2
3
4# 修改`section.key`值(缺省`--local`)
$ git config [--system|--global|--local] <section>.<key> <value>
# 删除配置项
$ git config [--system|--global|--local] --unset <section>.<key>
配置文件常用
1 | # 核心修改 |
autocrlf
在linux若设置为input
,在add
包含<CRLF>
文件会报fatal
错- 因为
input
在提交时会将<CRLF>
转换为<LF>
,但在 检出时无操作 - 所以导致即使
add
也不能保证repo当前状态和提交状态 一致
- 因为
remote
1 | # 查看远程仓库 |
指定ssh key
- git依赖ssh进行存储库认证,无法直接告诉git使用哪个私钥
~/.ssh/config
中配置ssh host:git每次使用host代替原 服务器地址1
2
3
4host <host>
HostName github.com
IdentityFile $HOME/.ssh/id_rsa_github_private
User git- ssh host详见*linux/shell/config_files”
GIT_SSH_COMMAND
环境变量:指定ssh命令-i
中参数1
2
3
4
5GIT_SSH_COMMAND="ssh -i ~/.ssh/id_rsa_github_private" git clone ...
// 可以`export`持久化
export GIT_SSH_COMMAND = ...
// 写入git配置
git config core.sshCommand "..."
展示命令
log
1 | git log [<file_name>] |
show
1 | $ git show <tag_no|commit_hash> |