# git 结构
![git 结构](_v_images/20200131131547268_15507.png)
# git 工作流程
![git 协作方式](_v_images/20200131130528873_23625.png)
# git 使用
## git 初始化
git init
## git 设置签名
### 项目级别
* git config user.name tom_pro
* git config user.email goodixmoarong@aut.com
### 系统级别
* git config --global user.name tom_glb
* git config --global xxxx@goodix.com
### 级别优先级
* 就近原则
* 二者必须有一个
#### 本地仓库信息保存位置
*.git/config*
![](_v_images/20200131134158475_1994.png)
#### 全局配置信息保存位置
~/.gitconfig
![](_v_images/20200131134118988_19762.png)
## 命令小结
* 查看
*git status*
* 添加
*git add [file name]*
* 提交
*git commit -m "commit message" [file name]*
* 查看历史记录操作
* git log
![](_v_images/20200131140816037_30655.png)
* git log --oneline
* git log -- pretty=online
![](_v_images/20200131140833680_31255.png)
* git reflog
![](_v_images/20200131140847702_10264.png)
* 多屏显示控制方式: 空格向下翻页
* 上次文件并找回
* 基于索引值前进后退
* git reset --hard [局部索引值] 移动指针位置
* git reset --hard HEAD^ 一个^代表后退一步,那个^代表后退N步
* git reset --hard HEAD~3 后退3步
* reset 三个参数对比
* soft 仅仅在本地库移动HEAD指针
* mixed 本地库移动HEAD指,重置缓存区
* hard 本地库移动HEAD指针,重置缓存区,重置工作区
* 删除文件找回
* 前提: 删除前, 文件存在时的状态提交到了本地文件夹
* 操作: git reset --hard[指针位置]
* 删除操作已经提交到本地库,指针指向。。。
* 比较文件差异
* 指令
* git diff [filename]
* 工作区文件和暂存区文件进行比较
* git diff [本地库中历史版本] [filename]
* 将工作区中的文件和本地库历史记录比较
* 不带文件名和工作区所有文件对比
* 命令帮助
* 创建分支
* git branch [分支名称]
* 查看分支
* git branch -v
* 切换分支
* git checkout [分支名]
* 合并分支
* 切换到被合并的分支上
* git checkout[分支名]
* 执行 merge 命令
* git merge [有新内容的分支]
* 冲突解决
* 编辑文件,删除特殊符号
* 把文件修改到满意的程度,保存退出
* git add [文件名]
* git commit -m "日志信息"
* 注意: 此时 commit 一定不能带文件名
* 本地库与远程库交互
* 查看远程库
* git remote -v
* 添加远程库地址
* git remote add origin [远程库地址]
* 推送本地库到远程库
* git push origin [远程库分支名]
* 克隆远程库
* git clone [远程库地址]
* 克隆
* 命令
* git origin [远程地址]
* 效果
* 完整的把远程库下载到本地
* 创建origin 远程地址别名
* 初始化本地库
* git 拉取
* pull = fetch + merge
* git fetch [远程库地址别名][远程库分支]
* git merge [远程库地址别名/远程库分支]
* 解决冲突
* 要点
* 如果不是基于github远程最新库的修改,不能推送,必须先拉取
* 拉取下来后如果进入冲突状态,则按照“分支冲突解决”操作解决即可。
* 跨团队协作
*
# 常见问题
* 如何去解决fatal: refusing to merge unrelated histories
* git pull origin master --allow-unrelated-histories
网友评论