1、拉取远程指定的分支:
git remote add origin git@github.com:XXXX/nothing2.git 简历连接
git fetch origin dev(dev为远程仓库的分支名)
在本地创建分支local并切换到该分支
git checkout -b local(本地分支名称) origin/dev(远程分支名称)
git pull origin dev(远程分支名称)
完成本地分支就变成远程分支一样了
2、强制切换至 test 分支,丢弃当前分支的修改
git checkout -f 分支
3、版本回退 reset、revert ,revert更有优势
(1) 回退本地 commit 几次
git reset --hard HEAD~1 回退到前3次提交之前,以此类推,回退到n次提交之前
(2) 回退远程和本地到某一次commit 版本
git reset –hard commitId(在git上查看)
git push -f 同步到远程仓库
(3)公共分支回滚用revert
使用git reset回退公共远程分支的版本后,需要其他所有人手动用远程master分支覆盖本地master分支,显然,这不是优雅的回退方法,下面我们使用另个一个命令来回退版本:
git revert HEAD //撤销最近一次提交
git revert HEAD~1 //撤销上上次的提交,注意:数字从0开始
git revert 0ffaacc //撤销0ffaacc这次提交
git revert 命令意思是撤销某次提交。它会产生一个新的提交,虽然代码回退了,但是版本依然是向前的,所以,当你用revert回退之后,所有人pull之后,他们的代码也自动的回退了。
但是,要注意以下几点:
revert 是撤销一次提交,所以后面的commit id是你需要回滚到的版本的前一次提交
使用revert HEAD是撤销最近的一次提交,如果你最近一次提交是用revert命令产生的,那么你再执行一次,就相当于撤销了上次的撤销操作,换句话说,你连续执行两次revert HEAD命令,就跟没执行是一样的
使用revert HEAD~1 表示撤销最近2次提交,这个数字是从0开始的,如果你之前撤销过产生了commi id,那么也会计算在内的。
如果使用 revert 撤销的不是最近一次提交,那么一定会有代码冲突,需要你合并代码,合并代码只需要把当前的代码全部去掉,保留之前版本的代码就可以了.
git revert 命令的好处就是不会丢掉别人的提交,即使你撤销后覆盖了别人的提交,他更新代码后,可以在本地用 reset 向前回滚,找到自己的代码,然后拉一下分支,再回来合并上去就可以找回被你覆盖的提交了。
4、pull注意项
// pull 时添加rebase实现节点区分,不然会把别人修改的都混在自己的commit中,不利于团队合作
git pull --rebase origin xxx远程分支
5、push之前可以做代码检查
git pre-commit 实现代码提交之前检查代码是否合法 https://www.jianshu.com/p/46baf3b24ade