saas建站平台介绍,建筑模拟2015,设计网页的目的,专业设计公司vi设计转载自 Git使用中的一些奇技淫巧Git作为当今最流行的分布式代码版本管理系统#xff0c;它的出现改变了软件的开发流程#xff0c;大大地提高了开发流畅度。
本人使用Git也有一段时间了#xff0c;一直都只是使用一些最最基本的几个命令#xff0c;对于不复杂的代码工程来…转载自 Git使用中的一些奇技淫巧Git作为当今最流行的分布式代码版本管理系统它的出现改变了软件的开发流程大大地提高了开发流畅度。
本人使用Git也有一段时间了一直都只是使用一些最最基本的几个命令对于不复杂的代码工程来说我觉得已经够用了。
命令别名
平时不太用GUI都是在IDEA中直接敲命令进行相关操作觉得命令行相对于GUI来说效率还是要高一些一开始老老实实的敲完整的命令比如
1、git checkout dev
2、git status
3、git commit -m 某次提交
后来才发现Git有别名这一功能通过下面几个命令可以把比较长的命令使用简短两个字母代替。
$ git config --global alias.co checkout
$ git config --global alias.ci commit
$ git config --global alias.br branch
$ git config --global alias.st status
然后就可以愉快的敲 git st 来查看当前状态了除了这种简单的替换还可以进行复杂的替换比如要显示一个牛逼的提交记录可以把lg替换成很长的一段命令组合如下
$ git config --global alias.lg log --color --graph --prettyformat:%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)%an%Creset --abbrev-commit
大家可以感受一下这是原生的 git log下面是 git lg是不是高大上了很多还有很多组合命令可以去挖掘如何放弃本地修改
这个功能平时用的还是比较多的经常功能加了之后发现并没什么卵用需要放弃这些修改不过这也分为好几种情况。
1、未进行add操作
这种情况应该是最常见的一般修改不会轻易进行 git addfile操作这个时候只需要进行简单的 git co--. 全部或者 git co--file 恢复具体的文件。
命令中的--很重要没有--就可能变成 分支切换 的命令但是如果没写--且没有对应的分支也可以恢复为了保险还是老老实实加上。
该命令就是用来放弃那些还未加入缓存区的修改操作包括文件内容的修改和文件的删除但是对于那些新建的文件来说并不把它删掉因为刚新建的文件对于Git来说是未知的需要手动的删除。
2、已经被add进缓存
好吧这种情况我也是经常遇到因为手速太快执行完 git add. 之后发现一些有问题怎么办
因为这些修改已经被放入缓存区了 git co 操作已经无力回天这个时候可以使用 git reset HEADfile 命令来放弃指定的文件的缓存如果要放弃所有修改的缓存可以使用 git reset HEAD.
该命令相当于撤销 git add 的影响在执行该命令后本地的修改并不会消失而是回到add之前的状态。
3、add完之后还commit了
这种情况最糟心还好没有push到远程仓库还可以抢救。其实方法也很简单可以使用 git reset--hard HEAD^ 来回退到上一次commit的状态。
另外使用此命令可以回退到任意版本 git reset--hard commitid这里的commitId就是使用 git log 显示的提交历史中的SHA码只需要前面几位即可。
如何合并分支
通常我们会在一个新建分支进行相关功能的开发比如执行 git co-br dev 创建一个dev分支进行开发。
一个功能迭代开发了一周测试通过之后需要合并回mater分支这个时候master分支可能已经合并了一些其他小伙伴的代码这个时候的Git可能下面这个情况下面是SourceTree上的显示结构需要把dev分支的代码合并到master上可以有两种方法
git merge dev
git rebase dev
如果是执行 git merge dev 效果如下merge命令会留下dev分支却在合并的地方多了一个merge节点。
如果是执行 git rebase dev-0会发生什么我们再试试因为测试重新创建了dev-0分支通过rebase的合并发现dev-0的commit信息很自然被整合到了mater分支中好像dev-0分支从来没有存在过一样整个分支也很干净。
删除远程分支
有时候可能一不小心把本地的开发分支会push到了远程仓库虽然没什么大碍对应有分支洁癖的同学可能不能接受怎么办删除之。
对于本地分支可以痛快的执行 git br-d dev 命令进行删除远程分支就没这个简单了不过命令还是有的只是不太好记。
git push origin :branch-name
推送一个空分支到远程分支相当于删除了远程分支在v1.7.0 之后可以使用下面这种语法进行删除
// 1.7.0之后
git push origin --delete branch-name
tag相关
一般在发布一个版本的时候会打一个对应的版本号。
git tag 1.1.8
那么tag有什么好处
比如目前组件已经迭代到了版本2.0.5业务却拿着1.1.8的版本咨询哪哪哪有问题这个时候就可以快速的执行 git co1.1.8 命令定位到1.1.8版本发布时的代码并进行相关问题的查看。
其它的一些技巧
1、git add -p之前在执行 git add时可能把并不想提交的一些修改测试逻辑给add到缓存了如果添加了 -p 可以一步一步显示变更的内容并进行选择缓存。如果输入n并回车就可以放弃当前块的修改。
其它一些高级技能平时也没怎么用过如果有其它的一些技巧欢迎推荐。
最后
献上一张图已经忘记当时是哪里找到的