【Git】常用指令整理
1. 设置签名
1.1 项目级别/仓库级别
git config user.name xxx
:设置用户名git config user.email xxx
:设置邮箱账号- 签名存放位置:
./.git/config
1.2 系统用户级别
git config --global user.name xxx
:设置用户名git config --global user.email xxx
:设置邮箱账号- 签名存放位置:
~/.gitconfig
项目级别的优先级大于系统用户级别,如有项目级别则采用项目级别,如果没有项目级别,则采用系统级别,不允许两者都不存在的情况
2. 基础操作
2.1 添加
git add <file name>
:将工作区文件添加到暂存区
2.2 提交
git commit -m "commit content" <file name>
:将暂存区的文件,提交到本地仓库- commit content:提交的内容,由提交者填入
2.3 状态查看
git status
:查看工作区、暂存区的状态
2.4 查询日志
git log
:直接展示,详细展示
git log --pretty=oneline
:每条记录只显示一行,简洁
git log --online
:把上一种的哈希值缩短(进一步简洁)
git reflog
:在上一种的基础上,多了HEAD@{n}
,n代表移动到当前版本需要多少步
2.5 版本切换
git reflog
:先查询历史信息,获取到要转跳版本的索引值git reset --hard <index>
:输入索引值,切换到特定版本示例操作:
git reflog
,查看提交了历史,确认要切换到fa8822a版本- 输入指令
git reset --hard fa8822a
,git切换到特定版本 - 通过
git reflog
指令验证
2.6 git reset
git reset --soft <index>
- 仅仅在本地库移动 HEAD 指针
git reset --mixed <index>
- 在本地库移动 HEAD 指针
- 重置暂存区
git reset --hard <index>
- 在本地库移动 HEAD 指针
- 重置暂存区
- 充值工作区
// todo 加图说明一下
// 这里拉出来整理一下
2.7 文件比较
git diff <file name>
:将工作区中的文件与暂存区进行比较git diff <index> <file name>
:将工作区里的文件与本地库某个历史版本进行比较git diff
:直接比较多个文件
3. 分支操作
3.1 创建分支
git branch <name>
3.2 查看分支
git branch -v
3.3 切换分支
git checkout <name>
3.4 分支合并
git checkout <name>
:切换到接受修改的分支(被合并)git merge <branch name>
:执行merge,将要合并的分支进行合并
3.5 分支冲突
- 编辑文件,删除特殊符号
- 将文件修改到符合预期
git add <file name>
git commit -m "xxxx"
提交到本地仓库
4. 结合远程库的操作
4.1 创建远程库地址别名
git remote -v
:查看当前所有远程地址别名git remote add <alias> <remote address>
:设置远程地址别名
4.2 克隆
git clone <remote address>
- 将远程库下载到本地
- 创建 origin 远程库别名
- 初始化本地库
4.3 拉取
git pull <remote address> <remote branch>
:将远程仓库某个分支拉取到本地git pull
==git fetch
+git merge
:pull
指令可以认为是执行了fetch
指令与merge
指令git fetch <remote address> <remote branch>
:拉取到本地git checkout <local branch>
:切换到本地的分支git merge <remote branch>
:将拉取到本地的远程分支,与原有的本地分支进行合并
- 详解git pull和git fetch的区别
4.4 pull & clone 的区别
pull | clone | |
---|---|---|
概念 | 从远程服务器上克隆一个一模一样的版本库到本地,复制的是整个版本库(本地从无到有的过程) | 从远程服务器获取一个分支的更新到本地,并更新本地库(同步更新内容到本地,并非从无到有) |
仓库初始化 | 直接拉取工程,本地无需是仓库(会初始化仓库) | 需要先初始化本地仓库 |
分支 | clone获取的所有的分支 | 更新当前的分支 |
推送 | 可直接指定分支推送到远程 | 需通过remote add orgin 指定源,才可进行push |
还没有评论,来说两句吧...