五分钟学算法|Git,一分钟玩转
公众号关注“GitHubPorn”
设为“星标” , 每天带你逛GitHub!
文章图片
今天又有新来的小朋友问我关于Git的用法 , 我发现还是有蛮多新人不会用的 , 或者用不好的 。 其实想想自己刚工作时也是倒腾不清楚这些参数和用法 , 而且总怕出错 , 慢慢的多看文档、用得多了就熟悉了 , 今天简单跟大家分享几点 。
必知的add&commit
首先我们要清楚在本地的三种状态:
文章图片
好吧我把命令已经写上去了 。
本地改完了代码 , 就用
【五分钟学算法|Git,一分钟玩转】gitadd文件名/文件夹/多个也可
提交到缓存区 , 这里如果文件改动的比较多 , 但又不是每个都需要提交 , 我会设置gitignorefile , 就表示这些文件不要提交 , 比如在buildproject的时候会自动生成的那些文件等等 。
然后再
gitcommit-m"comment"
才会到本地库 。 一般后面都会跟个-m加句comment , 简单说下改了啥 , 像我们公司大家默认也会把Jira链接附上 , 这样就知道这个改动对应哪个任务 。
那如果想再改 , 再重新gitadd即可 , 但是commit这句需要改成
gitcommit--amend
这样就还是一条gitlog信息 。
Log
gitlog可以让我们查看提交过的日志 , 这个主要是因为如果需要对版本进行前进or后退的(下一个reset) , 就需要用到编号 。
直接run
gitlog
的话就会显示一大坨信息 , 从近到远显示每次commit的comment还有作者、日期等信息 , 比如大概长这个样子:
commit5abcd17dggs9s0a7a91nfsagd8ay76875afs7d6
Author:Xiaoqi<xiaoqi@163.com>
Date:xxxxxxxxx
改了Test文件
commit后面的这个编号 , 是每次历史记录的一个索引 。
这样打印的log太多 , 更简洁的打印方式是:
git--oneline
就一行打印出来了 。
或者:
gitreflog
更常用一些 。
Reset
那我们刚刚说过 , 如果需要前进或退回到某个版本 , 就用
gitreset--hard<编号>
这样就直接跳到了这个编号对应的那个版本 。
那么这个hard是什么意思呢?
这里有3个参数:hard,soft,mixed , 我们一一来说一下 。
回到我们最重要的这张图上来:
文章图片
我们刚刚说的前进或后退到某一版本 , 是对本地库进行的操作 。
那有个问题:
本地库的代码跳到那个版本之后 , 工作区和暂存区的代码就和本地库的不同步了呀!
那这些参数就是用来控制这些是否同步的 。
gitreset--hardxxx
三个区都同步 , 都跳到这个xxx的版本上 。
gitreset--softxxx
前面两个区不同步 , 就只有本地库跳到这个版本 。
gitreset--mixedxxx
暂存区同步 , 工作区不动 。
所以呢 , 用的多的就是hard.
关于Git的用法还有很多 , 如果大家喜欢这个系列还请给我点个「在看」呀 , 这样我就更有动力去写啦~
---
爱分享 , 爱开源 , GitHubPorn现已正式上线!专注于为大家分享优质的计算机学习资源与开发者工具 。
如果今天的推荐符合你的口味 , 请在文章点赞 , 以表示对我的支持 , 你们的点赞和转发关注 , 是我持续更新的动力^_^
推荐阅读
- 依然名侦探|教你如何全面压制狂铁!,玩马超还在头疼狂铁吗?给我五分钟
- 筱文聊电竞|中途五分钟的暂停,让JDG战队成功再次躺枪,FPX以2:0带走ES
- 梦幻西游手游|千帆竞渡百舸争流,梦幻西游手游:五分钟看懂宠物改版
- 好六网|安然发文五分钟霸占热搜第一,LOL:小虎安然感情剧终分手
- 『国服』玩家为了上国服后羿,用时7天研究战力分算法后,拿下万分后羿
- 实锤君谁玩都能屠杀,Uzi十五分钟三次五杀!找出无限火力无敌组合
- 刀锋电竞陪玩酱十五分钟三次五杀!Q当平A用,永远滴神!UZI无限火力玩EZ