## git相关使用
#### ssh-keygen
``` Bash
ssh-keygen -t rsa -C "xxxxx@qq.com"
# 不同的rsa
ssh-keygen -t rsa -C "xxxxx@qq.com" -f ~/.ssh/github_rsa
ssh-keygen -t rsa -C "xxxxx@qq.com" -f ~/.ssh/ali_rsa
```
##### 多个git服务域名配置
修改 ~/.ssh/config
``` yaml
# gitee.com
Host gitee.com
HostName gitee.com
PreferredAuthentications publickey
IdentityFile /Users/adong/.ssh/id_rsa
User adong
# 配置aliyun.com
Host code.aliyun.com
HostName codeup.aliyun.com
PreferredAuthentications publickey
IdentityFile /Users/adong/.ssh/ali_rsa
User xxx@163.com
```
#### 常用操作
``` Bash
# 设置用户名
git config --global user.name "adong"
# 设置邮箱地址
git config --global user.email "xxxxx@qq.com"
# 初始化
git init
# 新增文件后
git add .
# 本地提交
git commit -a -m init
# 增加远程仓库
git remote add origin git@gitee.com:xxxxx/xxx.git
# 拉取远程成库代码
git pull
# 推送到远程仓库
git push
# 查看本地分支
git branch
# 查看远程分支
git branch -a
# 创建本地分支
git branch branch_name
# 切换到分支
git checkout branch_name
# 获取分支并重命名到本地
git checkout -b branch_name my_branch_name
# 远端不存在,本地存在可执行
git fetch origin --prune
# 变基
git rebase develop new-version
git rebase --continue
# 日志
git log
# 清理缓存,解决.gitignore 更新后不起作用
git rm -r --cached .
git add .
git commit -a -m "update .gitignore"
# 获得最近的版本号
git rev-parse HEAD
# 恢复到指定版本号
git reset --hard 版本号
```
#### .gitignore忽略文件配置
```
# .gitignore
.DS_Store
# Editor directories and files
.idea
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln
*.pyc
*__pycache__*
```
单个文件夹整体忽略
```
*
!.gitignore
```