## 一、常用命令
#### 查看本地所有分支
```
git branch
```
#### 查看当前状态
```
git status
```
#### 提交
```
git commit
```
#### 查看所有的分支
```
git branch -a
```
#### 查看远程所有分支
```
git branch -r
```
### 切换远程分支
```
git checkout -b 本地分支名称 origin/远程分支名称
```
### 切换本地分支
```
git checkout 本地分支名称
```
#### 提交并且加注释
```
git commit -am "init"
```
#### 将文件给推到服务器上
```
git push origin master
```
#### 显示远程库origin里的资源
```
git remote show origin
```
#### 切换到远程dev分支
```
git checkout --track origin/dev
```
#### 删除本地库develop
```
git branch -D master develop
```
#### 建立一个新的本地分支dev
```
git checkout -b dev
```
#### 将分支dev与当前分支进行合并
```
git merge origin/dev
```
#### 切换到本地dev分支
```
git checkout dev
```
#### 查看本地项目的git地址
```
git remote -v
```
#### 查看项目是从哪个分支拉下来的
```
git remote show origin
```
### 2.放弃本地修改
#### 2.1 未使用 git add 缓存代码时,使用:
```
git checkout -- filepathname
```
#### 2.2 已经使用了 git add 缓存了代码
```
git reset HEAD filepathname
```
#### 2.3 已经用 git commit 提交了代码
可以使用 git reset --hard HEAD^ 来回退到上一次commit的状态.
```
git reset --hard commitid
```
可以使用 git log 命令来查看git的提交历史。git log 的输出如下,之一这里可以看到第一行就是 commitid:
### 3.放弃本地修改
git pull时出现冲突 放弃本地修改,使远程库内容强制覆盖本地代码
```
git fetch --all #只是下载代码到本地,不进行合并操作
git reset --hard origin/master #把HEAD指向最新下载的版本
git checkout . #本地所有修改的。没有的提交的,都返回到原来的状态
git stash #把所有没有提交的修改暂存到stash里面。可用git stash pop回复。
git reset --hard HASH #返回到某个节点,不保留修改。
git reset --soft HASH #返回到某个节点。保留修改
```
## 二、从一个分支cherry-pick多个commit
首先 git log 查看commit记录;
然后,
- 单个commit只需要
```
git cherry-pick commitid
```
- 多个commit 只需要
```
git cherry-pick commitid1..commitid100
```