这是我参与8月更文挑战的第20天,活动详情查看:8月更文挑战
Git配置
配置文件(gitconfig
)
# 配置全局的用户名和邮箱 不加global表示局部有效
$ git config --global user.name "A"
$ git config --global user.email A@gmail.com
# 针对当前仓库
$ git config -e
查看所有配置信息
$ git config --list
http.postbuffer=2M
user.name=A
user.email=A@gmail.com
查看单个配置信息
$ git config user.name
A
Git工作流程
工作中流程:
- 1 克隆代码到本地目录.
- 2 在本地代码中添加或修改文件.
- 3 其他人修改了代码,可以pull代码,查看最新代码.
- 4 提交前先下拉最新代码,有冲突,先解决.
- 5 提交代码,如发现提交代码有问题,可以回滚,修改问题,再次提交代码.
Git创建仓库
# 初始化仓库
git init
# 指定目录初始化仓库
git init fileName
# 初始化仓库之后,会生成一个.git目录,里面存放仓库操作记录
# 添加README文件
$ git add README
# 添加以.c结尾的文件
$ git add *.c
# 添加注释信息 Linux中-m后面使用单引号'' / Windows中使用双引号""
$ git commit -m "初始化项目"
Git克隆仓库
# 直接克隆仓库到当前地址
git clone 仓库地址
# 克隆仓库到指定目录
git clone 仓库地址 指定目录
# 以RocketMQ仓库为例 https://github.com/apache/rocketmq.git
git clone https://github.com/apache/rocketmq.git D:\workspace\rocketmq
Git基本操作
graph LR
A[workspace] -->|add|B(staging area)
B[staging area] -->|commit|C(local repository)
C[local repository] -->|checkout|A(workspace)
D[remote repository] -->|fetch/clone|C(local repository)
C[local repository] -->|push|D(remote repository)
D[remote repository] -->|push|A(workspace)
说明:
- workspace 工作区
- staging area 缓存区
- local repository 本地仓库
- remote repository 远程仓库
# 基础操作
git init # 初始化仓库
git clone # 克隆仓库
git add # 添加文件到仓库
git status # 查看仓库状态, 显示有变更的文件
git diff # 比较文件的不同, 暂存区和工作区差异
git commit # 提交代码到本地仓库
git reset # 回退版本
git rm # 删除工作区文件
git mv # 移动活重命名文件
git log # 查看历史提交记录
git blame <file> # 以列表形式查看指定文件的历史修改记录
git remote # 远程仓库操作
git fetch # 从远程获取代码
git pull # 下载远程代码并合并
git push # 上传远程代码并合并
Git分支管理
# 创建分支 branchname分支名
git branch branchname
# 切换分支
git checkout branchname
# 合并分支 合并分支到当前分支
# 一般是把dev分支合并到master分支 先切换到master分支,再合并dev分支
git merge branchname
# 查看本地所有分支
git branch
# 删除分支
git branch -d branchname
Git查看提交历史
# 查看历史提交记录
git log [可选参数]
# 参数
--oneline # 查看历史提交记录简洁版本
--graph # 查看历史中什么时候出现分支,合并
--reverse # 逆向显示所有日志
--author=Xxx# 查看指定用户提交日志
--since # 时间前
--before # 时间前
--until # 时间后
--after # 时间后
# 以列表形式查看指定文件的历史修改记录
git blame <file>
Git标签
# 创建一个标签(不推荐,不会标签,时间,创建人)
git tag -a
# 创建一个带注解的标签(推荐使用)
git tag -a v1.0
# 给之前提交追加标签 后面加上提交的记录码 85fca1a2
git tag -a v0.9 85fca1a2
# 查看所有标签
git tag
v0.9
v1.0
# 指定标签信息
git tag -a tagname -m "第一次打标签"
# PGP签名标签命令
git tag -s tagname -m "第一次打标签"
Git Gitee/Git Github使用
创建SSH连接
先查看本地是否存在秘钥,存在直接使用.(C盘\用户\本机用户名\.ssh
目录下是否存在id_rsa
和id_rsa_pub
)
1 打开Git Bash 输入创建命令
# 直接创建
ssh-keygen
# 带注释创建 -t指定秘钥类型,默认SSH-2的RSA密钥 -C 注释信息
ssh-keygen -t rsa -C "youremail@example.com"
2 将SSH添加到版本管理仓库
将id_rsa_pub文件,用文本打开,复制内容,添加到Gitee仓库公钥中
基本操作
# 关联远程仓库
git remote add origin 远程仓库地址
# 查看远程库信息
git remote -v
# 删除远程库
git remote rm origin
# 同时关联Gitee库和Github库 可以,但是给远程仓库取名要不相同,不能都为origin
git remote add github git@github.com:xxx
git remote add gitee git@gitee.com:xxx
# 推送代码时 要区分远程仓库名
git push github master
git push gitee master