来公司一周多,主要是在熟悉各类环境和流程,而做为研发来说,git的使用也是必不可少的。之前使用方式单一,几我的对着master,pull和push,来了以后发现其实在平常的开发中,git能够很方便的帮咱们进行分工和合并,这里总结一些平时可能会用到的命令和要点:git
1. 开发模式:服务器
也了解过,其实部门内部基本上都是分支开发的模式,不多有人作主干开发,这样的好处也是能够保证主干的可持续发布(主干好像是被发布服务Odin接管了)。那如今基本的开发模式(对于我这个单用户来讲),是这样的:ide
可能有些麻烦,可是这样能够保证每次dev更新能够及时合并到本地,而且加了本地dev就不须要远端merge以后马上拉最新的代码。固然远端会有不少分支,以后开发的版本多了,功能多了,这个图还会再作调成,本地可能也会多一些分支作不一样的模块修改。工具
2. 基本命令fetch
3. Git查看、删除远程分支idea
查看远程分支
加上-a参数能够查看远程分支,远程分支会用红色表示出来(若是你开了颜色支持的话):
$ git branch -aspa
删除远程分支
在Git v1.7.0 以后,可使用这种语法删除远程分支:
$ git push origin --delete <branchName>命令行
不然,可使用这种语法,推送一个空分支到远程分支,其实就至关于删除远程分支:
git push origin :<branchName>设计
两种语法做用彻底相同。
指针
4. git log命令
好比咱们有 2 个分支:master, dev,如今想查看这两个 branch 的区别,有如下几种方式:
- 查看 dev 有,而 master 中没有的:git log dev ^master
- 同理查看 master 中有,而 dev 中没有的内容:git log master ^dev
7. git reset --hard,--soft,--mixed
举例:
(F)
A-B-C ↑ master
a. 输入git reset --hard
,结果会变成:
(F)
A-B ↑ master
C
状态完全没有,再也找不回来。因此,没事不要用这个命令。
b. 输入了git reset --soft
,结果是:
(F)
A-B-C ↑ master
文件状态与分支的指针都指向上一个提交,C
仍是在的,只是没显示。
c. 输入 git reset --mixed
,结果是:
(F)
A-B-C ↑ master
分支指针指向上次提交点,可是文件状态仍是在当前文件 C
,我看到的现象就是 C
文件还在,可是没有 add
,是红色的。
能够看出,三个命令中 mixed
是最好的回退处理方式,其实这也是 git reset
的默认参数。
8. git stash ,git stash pop
git stash 可用来暂存当前正在进行的工做, 好比想pull 最新代码, 又不想加新commit, 或者另一种状况,为了fix 一个紧急的bug, 先stash, 使返回到本身上一个commit, 改完bug以后再stash pop, 继续原来的工做。
写在最后:其实慢慢发现git是个设计很是有意思而且东西不少的工具,本身了解的仍是很浅显,这只是做为本身的一个命令收录吧,以后用到其余的会不断更新。