# Git
### 1. git log 命令行美化后查看
`git log --pretty=oneline`
### 2. 删除远端分支中某个文件和文件夹
```bash
# -r 是文件夹 不加是删除文件
git rm --cached -r code
git commit -m "delete directory"
git push
```
### 3. 删除远端分支
`git push origin --delete hotfix-0.35.0`
### 4. 打tag
a) `git tag -a v0.35.1 -m '老板本dcs上线后第一个版本bug解决完成。'` 打附属注释的tag
b) `git push origin --tag|[tagname]` 将某个tag推送到远端
### 5. 重命名一个分支(dev -> develop)
先删除远程分支 `git push --delete origin dev`
重命名本地分支 `git branch -m dev develop`
重新提交一个远程分支 `git push origin develop`
### 6. git reset --soft HEAD^
撤销了commit
注意,仅仅是撤回commit操作,您写的代码仍然保留。
### 7. 远程分支删除了git branch -a 仍有显示
git remote show origin 显示本地分支和远程分支差异
git remote prune origin 删除本地在远程不存在的分支
## 8.回滚分支
【本地代码库回滚】:
```sh
git reset --hard commit-id :回滚到commit-id,讲commit-id之后提交的commit都去除
git reset --hard HEAD~3:将最近3次的提交回滚
```
【远程代码库回滚】:
原理:先将本地分支退回到某个commit,删除远程分支,再重新push本地分支
操作步骤:
```sh
1、git checkout the_branch
2、git pull
3、git branch the_branch_backup //备份一下这个分支当前的情况
4、git reset --hard the_commit_id //把the_branch本地回滚到the_commit_id
5、git push origin :the_branch //删除远程 the_branch
6、git push origin the_branch //用回滚后的本地分支重新建立远程分支
7、git push origin :the_branch_backup //如果前面都成功了,删除这个备份分支
```
## 9. reset线上分支上的commitId
```sh
// 重置提交记录
1. git reset --hard commitId
// 强行推送远端
2. git push origin HEAD --force
```