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的主要内容,如果未能解决你的问题,请参考以下文章