git开发常规流程和命令
1、养成建分支的好习惯
a、本地建分支:
git branch dev(本地分支名)
切换本地分支到dev
git checkout dev
两个命令可以一起实现用: git checkout -b dev 意思就是新建本地分支dev并切换到本地分支dev
删除本地分支:
git branch -d dev(本地分支名)
强制删除用D
b、远程建分支
git push origin master(本地任意一个分支):yuancheng(要新建的远程分支名)
其实尼也可以直接在git官网上新建一个远程分支
删除远程分支:
git push origin --delete yuancheng(远程分支名)
c、git提交的常规操作
新建本地分支进行开发
git checkout -b dev
从远程分支克隆到本地:
git clone git地址
如果是克隆远程分支的代码到本地则(一般来说我们是在自己的远程分支开发的,push之后再到git官网提merge合并到远程master):
git clone -b 远程分支名 git地址
把所有的文件和文件夹从功能工作区提交到暂存区(一把的编辑器都会提示是否add,如果add的话其实就可以不用这一步了)
git add .
当然也可以单独提交某个文件或者文件夹如:
git add test.txt 就是把test.txt文件提交到暂存区
撤销上一步提交(add);
git reset HEAD
从远程仓库更新代码:
git pull origin 远程分支名:本地分支名
如:git pull origin master:bendi
此时pull的时候可能会遇到问题,是因为最新的代码和自己本地代码有冲突,需要消除差异执行此命令:
git pull origin master(需要pull的远程分支名) --allow-unrelated-histories。
执行完之后有看日志有冲突解决冲突就好了。解决冲突其实就是打开有冲突的文件,选择自己要保留的代码删除不需要的代码即可。
把暂存区文件提交到版本库
git commit -m "添加提交记录"
撤销commit:
git reset --soft HEAD
如果想同时撤销commit和add操作可以用如下命令:
git reset --hard HEAD
查看add提交状态:
git status
简单来说就是黄色的就是add之后的文件,红色就是没有add的文件
commit之后就可以把本地分支的代码merge到本地master了
切换到本地master:
git checkout master
然后merge本地分支dev
git merge dev
最后就是把本地代码推送到远程分支了
git push origin master(本地):远程分支
如果远程没有分支的话直接推送到远程master就直接用:
git push origin master(本地):master(远程)
然后到git官网提merge使自己的远程分支代码合并到远程分支master。有权限的管理员同意merge之后,就齐活了!
2、解决疑难杂症
a、git stash的使用
其实我们经常会遇到这样一个问题,就是我们在自己的本地分支上开发某个功能但是还没开发完,这是来了一个bug需要我们改一下,所以我们需要重新再本地新建一个bug分支。但是直接新建分支的话发现bug分支上还是有dev分支开发的代码,就不得不完成功能在改bug了。所以这个时候我们只需要用:
git stash
就可以把开发的代码隐藏起来了,这个时候再新建一个本地分支就可以改bug了。我们改完bug之后就可以按照常规操作提交代码了。此时我们需要继续开发功能,只需要切到dev分支执行:
git stash pop
就可以恢复之前隐藏起来的代码了
哈哈! git stash 没有讲太深,想充分了解就自己百度补充下吧!
b、解决冲突无法合入的问题
把代码拉取到本地分支然后手动解决冲突再合入主干再推送远程分支
1、拉取远程分支并创建本地分支:看这里
git fetch origin 远程分支:本地分支名字
这种方式不会切换到本地分支,目前还在当前分支,需要手动git checkout
2、使用该方式会在本地新建分支x,并自动切换到该本地分支x。
git checkout -b 本地分支名x origin/远程分支名x
解决掉本地分支和本地主干的冲突,然后再合入主干,push到远程分支