一. git本地新建分支推到远程仓库并关联
1. 本地新建 dev 分支并切换到该分支
git checkout -b dev
## 相当于执行了下面两条指令,新建分支并切换分支
git branch dev
git checkout dev
2. 将本地新建分支 dev 推送到远程仓库 dev 分支
git push origin 本地新建分支名称 : 远程仓库新建分支名称
git push origin dev:dev
这个时候本地新建的分支还没有和远程新分支建立关联关系,需要执行 git --set-upstream origin dev来实现关联
3. 这个时候开始本地新分支和远程仓库新分支建立关联关系
## 建立关联关系
git push --set-upstream origin dev
4. 查看是否关联成功:查看本地分支与远程仓库分支的关联关系
git branch -vv
二. git提交的一些命令
1. git add 的命名:将本地代码提交到暂存区
(1)提交所有的 被修改、新建文件 到暂存区
git add .
(2)提交所有 被修改 的和 被删除 文件到暂存区
当我们删除一个文件后,执行git add -u命令,发现删除的文件也放在暂存区了,避免我们文件删错了还能恢复
git add -u
## 全等于
git add -update
(3)提交所有 被修改、被删除、被替换、新建文件 到暂存区
当我们把项目中的a.js文件换为b.js文件,执行过该命令后,执行git status查看状态,控制台会有 a.js --> b.js
git add -a
## 全等于
git add -all
4. git commit 将暂存区的改动提交到本地的版本库,每次执行git commit 都会在本地版本库生成一个commit-id
(1)常用的 -m 可以直接输入后面的message,如果没有是会打开一个vim的编辑器用来输入message (简要说明我们本次提交的是什么功能)
git commit -m "提交信息"
(2)当我们提交了一版代码,并且推到远程仓库了,然后发现有一个小的更改,在代码没有合并之前,需要更改一下再次提交,这个时候就可以追加提交
## 代码调整过后,提交到暂存区
git add .
## 追加提交到上一次commit的版本
git commit --amend
## push到远程仓库
git push origin HEAD:refs/for/dev
(3)查看git commit的一些其他指令
git commit --help
5. 提交到暂存区的文件发现提错了,怎么撤销
git reset HEAD "文件名称"
6. 撤销git commit
## 软撤销 就是不删除工作空间改动代码,只是撤销commit 不撤销git add
git reset --soft "commit-id"
## 撤销本次修改代码,撤销commit提交
git reset --soft head^
## 硬撤销 本地代码会直接替换为指定撤销到的版本 删除工作空间改动代码,撤销git commit git add, 慎用
git reset --hard "commit-id"
## 不删除工作空间改动代码,撤销commit 并且撤销git add
git reset --mixed "commit-id"
7. git commit后git pull 代码后发现代码冲突
## 修改完冲突文件后
git add .
git rebase --continue
git commit
git push
8. 合并分支的时候,可能某一次提交了其他模块的代码(假如commit-id为1001011),但是开发不知道,后续还提交了多次,等到上线发现问题,只撤销这个commit-id为1001011 的提交怎么实现
## 撤销某次提交而存在,这个命令只针对撤销一个普通提交
git revert commit-id
## 针对merge的提交,git撤销并不知道我要撤消哪次提交
## 参数-m指定我们要撤销的哪个提价,从左往右,从一开始数
git revert commit-id -m 1
## 接着解决冲突
git add .
git commit -m "message"
git revert commit-id -m 2
##接着解决冲突
git add .
git commit -m "message"
git push