Git基本操作
Git基本操作
1. 设置签名
形式:用户名 + 邮箱地址
级别:
- 系统用户:当前操作系统的用户内有效
- 仓库级别:仅在本地仓库内有效
作用范围:就近原则
- 设置了仓库级别,就不使用系统级别
- 只有系统级别存在时,才使用系统用户级别
至少设置一个级别,否则无法正常工作
配置命令
仓库级别:
git config user.name 用户名 git config user.email 邮箱
系统级别:
git config --global user.name 用户名 git config --global user.email 邮箱
配置保存位置
- 系统级别:
{home}\.gitconfig
- 仓库级别:
{repo}\.git\config
2. 暂存文件
git add "文件名" # 存放文件到暂存区
3. 撤回暂存区文件
git rm --cached <file> # 将文件由暂存区撤回
4. 提交文件
git commit -m "提交信息" # 提交一个文件
5. 移除版本控制
git rm -r --cached # 移除版本控制,提交后生效
新建文件提交
- 对于新建的文件,必须
git add
进入暂存区。 - 如果之前已经添加进去了,修改后既可以先添加暂存区再提交,也可以直接:
git commit -a -m "message" # 直接提交
6. 查看版本历史
git log # 查看版本历史纪录
git log --oneline # 简略显示
git log --pretty=oneline # 显示在一行,可读性强
git reflog # 显示切换到哪个版本的记录
日志多屏显示
- 空格:向下翻页
- b:向上翻页
- q:退出
7. 版本回退
git reset --hard 索引值 # 强制回退到指定版本
使用符号回退
^
:只能回退git reset --hard HEAD^ # 当前版本前退一步
- 波浪线:表示后退步数
git reset --hard HEAD~3 # 前退三步
reset 的区别
- soft:仅在本地库移动 HEAD 指针,不触碰暂存区和工作区
- mixed:本地库移动指针,重置暂存区
- hard:本地库移动指针,暂存区和工作区均会被操作
8. 文件差异
git diff 文件名 # 比较工作区与暂存区的差异
git diff HEAD 文件名 # 比较工作区与本地库中的历史版本差异
- 不带文件名会比较多个文件。
9. 分支管理
查看所有分支:
git branch -a # 查看所有分支 git branch -r # 查看远程分支 git branch # 查看本地分支
删除分支:
git branch -D 分支名
新建分支:
git branch 分支名
切换分支:
git checkout 分支名
创建并切换到新分支:
git checkout -b 分支名
分支合并:
- 先切换到接受修改的目标分支
- 执行:
git merge 要合并的分支
- 如果有冲突,打开文件进行编辑
- 解决冲突后:
git add 文件 git commit # 进行标记解决冲突
10. 远程库
查看所有远程库别名:
git remote -v
添加远程库别名:
git remote add 别名 地址
推送到远程库:
git push 远程库别名 分支名
拉取远程库内容:
git fetch gitlab master # 拉取到本地,不修改工作区
合并远程库修改:
git pull 远程库别名 分支名 # 拉取并合并
11. Git 原理
- 哈希算法:使用不可逆算法(如 SHA-1),同一算法得到的长度相同。
- Git 基于快照进行版本管理,而不是增量式管理。未修改的文件会指向前一个版本。
12. 标签管理
删除标签:
git tag -d test_tag
远端删除标签:
git push origin --tags
Git基本操作
https://blog.liuzijian.com/post/76c84faf-989a-b189-bb61-c6e517194cc4.html