Git 的基本操作
本帖最后由 yingxy123 于 2018-8-24 11:46 编辑#### 1. 本地库初始化
##### 1.1 命令
```shell
git init
```
##### 1.2 注意
> .git 目录中存放的是本地库相关的子目录和文件,不能删除也不要修改
#### 2. 设置签名
##### 2.1 形式
- 用户名:YoYing
- Email地址: yingxy123@163.com
##### 2.2 作用
> 区分不同开发人员的身份
##### 2.3 注意
> ##### 这里设置的签名和登录远程库(代码托管中心)的账号、密码没有任何关系
##### 2.4 两种方式
- 项目级别/仓库级别:仅在当前本地库范围内有效
- 命令
```shell
git config user.name YoYing
```
```shell
git config user.email yingxy123@163.com
```
- 系统用户级别:登录当前操作系统的用户范围
- 命令
```shell
git config --global user.name YoYing
```
```shell
git config --global user.email yingxy123@163.com
```
- 信息保存在用户根目录的 ~/.gitconfig 文件中
- 优先级:就近原则,项目级别优先于系统用户级别,必须有其中一个
#### 3. 添加提交以及查看状态
##### 3.1 添加操作
- 命令
```shell
git add
```
- 作用
> 将工作区的“新建/修改” 文件添加到暂存区
##### 3.2 状态查看操作
- 命令
```shell
git status
```
- 作用
> 查看工作区、暂存区状态
##### 3.3 提交操作
- 命令
```shell
git commit -m "commit message"
```
- 作用
> 将暂存区的内容提交到本地库
##### 3.4 查看历史操作
- 命令 1
```shell
git log --pretty=oneline
```
- 命令 2
```shell
git reflog
```
#### 4. 前进后退历史版本操作
##### 4.1 本质
> 将 HEAD 指针进行移动
##### 4.2 基于索引值操作
- 命令
```shell
git reset --hard [部分索引值]
```
##### 4.3 基于 ^ 和 ~ 符号操作
- 说明
> 该符号操作只能后退,不能前进
- 命令
```shell
git reset --hard HEAD^^^^
```
```shell
git reset --hard HEAD~4
```
##### 4.4 reset 的参数说明
- --soft 参数
> 仅仅移动本地库的 HEAD 指针
- --mixed 参数
> 在本地库移动 HEAD 指针,重置暂存区
- --hard 参数
> 在本地库移动 HEAD 指针,重置暂存区,重置工作区
#### 5. 删除文件与文件找回
##### 5.1 删除文件
- 命令
```shell
rm aaa.txt
```
```shell
git add aaa.txt
```
```shell
git commit -m "delete new file"
```
- 找回命令
```shell
git reset --hard a5bfe5e
```
##### 5.2 添加到暂存区的删除文件找回
- 命令(现在该删除文件在暂存区,还没有提交到本地库)
```shell
git add bb.txt
```
```shell
git commit -m "add bb.txt"
```
```shell
rm bb.txt
```
```shell
git add bb.txt
```
- 找回
```shell
git reset --hard HEAD
```
##### 5.3 删除文件并找回
- 前提: 删除之前,文件存在时的状态已经提交到了本地库
- 操作:
```shell
git reset --hard [指针位置]
```
#### 6. 比较文件
##### 6.1 比较工作区和暂存区文件
- 命令
```shell
git diff [文件名]
```
- 说明
> 如果不指定文件名,表示比较多个文件
##### 6.2 比较工作区和本地库历史文件
- 命令
```shell
git diff [本地库历史版本] [文件名]
```
- 说明
> 如果不指定文件,表示比较多个文件
#### 7. 分支
##### 7.1 什么是分支
- 在版本控制过程中,使用多条线同时推进多个任务
##### 7.2 分支的好处
- 同时并行推进多个功能的开发,提高开发效率
- 各个分支在开发过程中,如果某一支开发失败,不会对其他分支有任何影响
##### 7.3 创建分支
- 命令
```shell
git branch amq
```
##### 7.4 查看分支
- 命令
```shell
git branch -v
```
##### 7.5 切换分支
- 命令
```shell
git checkout amq
```
##### 7.6 合并分支
- 切换到需要修改的分支上(被合并,增加新内容)
```shell
git checkout master
```
- 执行 merge 命令,将 amq 的修改的内容 merge 到 master 分支上
```shell
git merge amq
```
##### 7.7 解决分支冲突
- 如果在不同的分支同时修改相同的文件,使用 merge 的时候会有冲突
- 删除上述特殊标记符,使用 add 命令说明已经解决冲突了
```shell
git add bb.txt
```
- 提交
```shell
git commit -m "merge success"
``` 项目一直用 Git,最近有时间闲下来好好学习一下基础,有不对的地方还请大家指出来。一起进步。 编辑这些也是很不容易了 支持一下 先占个坑不拉屎 对于我我只需要会3个指令
git init
git clone
git gui
前两个一个是创建仓库,一个是克隆仓库,最后一个是打开图形界面用图形界面来操作git 支持一下 学习了,谢谢分享。 楼主这是用markdown写的吗,怎么在吾爱里编辑? 哈哈,我都是用的图形界面的
页:
[1]
2