Git

Posted alfredxing

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Git相关的知识,希望对你有一定的参考价值。

---
title: Git
---

# Git常用操作

## 丢弃工作区修改

```shell
git checkout -- file_name
```

## 撤销暂存区的修改

```shell
git reset HEAD file_name
```

## 版本回退

```shell
git reset --hard HEAD^    #退回上一版本
git reset --hard [commit id]    #退回到[commit id]版本
```

## 查看提交历史

```shell
git log
```

## 查看命令历史

```shell
git reflog
```

## 删除文件

```shell
rm -rf foo.txt
```

此时

```shell
git status
```

会提示删除了文件,有两种情况,一种是确实要删除文件,则

```shell
git rm foo.txt
```

即可。另一种是删错了,则

```shell
git checkout -- foo.txt
```

`git checkout`其实就是用版本库里的版本替换工作 区的版本。

## 远程仓库

### 创建SSH-Key

```shell
ssh-keygen -t rsa -C "your [email protected]"
```

### 添加SSH-Key

### 添加远程仓库

```shell
git remote add origin [email protected]:alfredxinglkey/learngit.git        //添加后远程库的名字就是origin,这是git默认的叫法
git remote add origin https://github.com/alfredxinglkey/learngit.git        //https除了速度慢,还有每次都需要输入口令
```

### 推送(push)

```shell
git push -u origin master        //第一次推送需要加-u参数
```

### 克隆(clone)

```shell
git clone [email protected]:alfredxinglkey/learngit.git
```

## 分支管理

### 创建分支

```shell
git branch dev        //创建分支dev
git checkout -b dev        //创建dev分支并切换到dev分支
git branch         //列出所有分支
```

### 切换分支

```shell
git checkout master        //切换到master分支
```

### 合并分支

```shell
git merge dev        //合并dev分支到master分支
```

### 删除分支

```shell
git branch -d dev        //删除dev分支
```

### 解决冲突

手动修改冲突文件后重新提交,然后再次合并。

### 分支管理策略

Fast forward模式下,删除分之后,会丢掉分钟自信息,需要手动强制禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样。从分支历史上就可以看出分钟自信息。

```shell
git merge --no-ff -m "merge with no-ff" dev        //禁用fast-forward模式
```











































以上是关于Git的主要内容,如果未能解决你的问题,请参考以下文章

Git 学习路线

从0到1带你掌握git(一分钟掌握git)--git如何下载?git如何使用?git是什么?git怎么获取文件?

Git认识与使用 Git

Git认识与使用 Git

Git认识与使用 Git

Git认识与使用 Git