# Git 基础使用

# 用户信息配置

# 设置自己的用户名和邮件地址 将用于记录谁操作了仓库
git config --global user.name "Asuhe"
git config --global user.email "sphinx@asuhe.fun"

# 配置信息检查

通过 git config --global user.name 和 git config --global user.email 配置的用户名和邮箱地址,会被写
入到 C:/Users/ 用户名文件夹 /.gitconfig 文件中。这个文件是 Git 的全局配置文件,配置一次即可永久生效。

# 查看所有的全局配置
git config --list --global
# 查看指定的全局配置项
git config user.name
git config user.email

# 获取帮助

# 获取 config 命令的帮助手册,将会打开网页
git help config
# 获取 config 命令的快速参考手册
git config -h

# 创建仓库

在想要创建仓库的目录下启动 git 然后将文件跟踪提交即可在本地创建 git 仓库

# 初始化仓库
git init
# 简要的显示文件状态
git status -s | --short
# 跟踪会将文件放到暂存区
# 跟踪单个文件
git add 文件名
# 跟踪目录下所有文件
git add .
# 提交文件,将会提交所有在暂存区的文件
git commit -m "更新描述"
# 回滚,即将 git 仓库中文件版覆盖现有的文件版本
git checkout -- 文件名
# 将文件从暂存区移出
git reset HEAD 文件名
# 强制提交所有已跟踪文件,跳过暂存阶段
git commit -a -m "更新描述"
# 同时从 git 仓库和工作区中删除文件
git rm -f 文件名
# 仅删除 git 仓库中的文件
git rm --cached 文件名

# 忽略文件

可以将不想提交的文件设置为忽略,这样文件就不会被 git 跟踪

创建一个名为.gitignore 的配置文件,列出要忽略的文件的匹配模式。 文件 .gitignore 的格式规范如下:

① 以# 开头的是注释
② 以 / 结尾的是目录
③ 以 / 开头防止递归
④ 以!开头表示取反
⑤ 可以使用 glob 模式进行文件和文件夹的匹配(glob 指简化了的正则表达式)

所谓的 glob 模式是指简化了的正则表达式:
① 星号 * 匹配零个或多个任意字符
② [abc] 匹配任何一个列在方括号中的字符(此案例匹配一个 a 或匹配一个 b 或匹配一个 c)
③ 问号?只匹配一个任意字符
④ 在方括号中使用短划线分隔两个字符,表示所有在这两个字符范围内的都可以匹配(比如 [0-9] 表示匹配
所有 0 到 9 的数字)
⑤ 两个星号 ** 表示匹配任意中间目录(比如 a/**/z 可以匹配 a/z 、 a/b/z 或 a/b/c/z 等)

# 忽略所有的.a 文件
*.a
# 跟踪所有的 lib.a,即使前面设置了忽略.a 文件
!lib.a
# 忽略当前目录下的 TODO 文件,而不忽略子目录下的 TODO
/TODO
# 忽略任何目录下名为 build 的文件夹
build/
# 忽略 doc / 下的 txt 文件,但不忽略其子目录下的 txt 文件
doc/*.txt
# 忽略 doc / 目录及其所有子目录下的.pdf 文件
doc/**/*.pdf

# 查看操作日志

# 按时间降序列出提交历史
git log
# 显示最近两条提交历史
git log -2
# 一行展示最近两条提交历史
git log -2 --pretty=oneline
# 自定义提交历史输出格式
# % h 提交的简写哈希值 % an 作者名字 % ar 作者修改日期 % s 更新描述
git log -2 ---pretty=format:"%h | %an | %ar | %s"

# 回滚至指定版本

# 回滚至指定 ID 的版本
git reset --hard <CommitID>
#

# 将本地仓库推送至 GitHub 仓库

基于 HTTPS

# 关联远程仓库
git remote add origin 远程仓库的地址
# 首次推送初始化
git push -u origin master

基于 SSH

# 生成密钥对
ssh-keygen -t rsa -b 4096 -C "github账号的邮箱"
# 连续敲击 3 次回车,即可在 C:\Users\ 用户名文件夹 \.ssh 目录中生成 id_rsa 和 id_rsa.pub 两个文件
# 复制 id_rsa.pub 的内容
# 在 GitHub 账号中添加公钥 Settings -> SSH and GPG Keys -> New SSH key
# 测试是否添加成功
ssh -T git@github.com
# 初始化操作类似 HTTPS

# 分支操作

# 查看当前 git 仓库中的所有分支
git branch
# 创建分支
git branch 分支名
# 切换分支
git checkout 分支名
# 创建分支并切换到上面
git checkout -b 分支名
# 合并分支
git merge 分支名
# 删除分支
git branch -d 分支名
# 推送分支至远程仓库,仅第一次推送时要带 - u 参数
git push -u 远程仓库别名(默认origin) 本地分支名称:远程分支名称
# 实例
git push -u origin payment:pay # 若不填写远程分支名称,远程分支名称将与本地分支一致
# 查看远程仓库分支信息
git remote show 远程仓库名
# 下载远程分支,本地分支名称默认与远程分支一致
git checkout 远程分支名称
# 从远程仓库把远程分支下载至本地,并对下载至本地的分支重命名
git checkout -b 本地分支名称 远程仓库名:远程分支名称
# 实例
git checkout -b payment origin/pay
# 拉取当前分支中的远程分支代码
git pull
# 删除指定远程分支
git push 远程仓库名称 --delete 远程分支名称
# 实例
git push origin --delete pay
更新于 阅读次数