[toc]
## 免登录提交
>https://github.com/settings/ssh/new
### 生成ssh公钥
```
ssh-keygen -t rsa -C "你的邮箱@xx.com"
```
### 查看生成的公钥
```
cat ~/.ssh/id_rsa.pub
```
## 将项目克隆到本地
```
git clone [ssh地址]
```
## 提交
```
git add .
git commit -m '完成了什么或修正了什么'
git push
```
### 快捷提交
当提交过一次后,我们就可以
```
git commit -a -m 'xxx'
```
进行快捷提交
## 功能开发
### 创建分支
一个分支对应一个功能
,先在线上创建分支
,再在本地拉取
```
git pull
```
### 切换分支
拉取后切换到创建的分支上后
再进行开发
```
git checkout index-swiper
```
### 推送分支
将开发好的分支推送到线上
```
git push
```
### 合并分支
当测试没有问题后
切换到主干,将刚才开发好的分支合并到主干上
```
git checkout master
```
```
git merge origin/index-swiper
```
这样确保本地的master分支上是整个项目最新的代码
>[info] 这个时候线上的master分支也已经合并了,审核的人合并的
>
>,嗯...如果是一个人开发,你可以在本地合并后再push一次
>,确保线上的主分支也是最新的,以便在下一次创建新分支时是基于最新的进度创建的
## 在本地创建新的分支并推送到线上
```
//在本地创建新分支v2
git branch v2
//切换到新分支
git checkout v2
--- commit一次 ---
```
将本地的v2分支推送到远程的v2分支
```
git push origin v2:v2
```
↓????
```
git push --set-upstream origin v2
```
## 冲突解决