社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Git

10种Git技巧,让你省时省力又省心!

机器学习算法与Python学习 • 5 年前 • 610 次点击  


图片来源:unsplash.com/@sam_truong


1. 从另一分支切换单个文件


大家是否曾销毁文件只为能重新开始? 或需要在另一分支的某文件中进行更改?而git指令可以实现从另一分支切换文件。


git checkout some-other-branch -- yarn.lock


同时,也可以使用相同的技巧从特定提交项切换出某个文件。


git checkout 9146367 -- yarn.lock



若cherry-pick能够筛选出不需要的文件,那么这就是十分有效的技巧了。


2. 查看日志时无需合并提交


合并提交常常令人头疼。事实上,有些人宁可不用合并指令,因为合并提交真是太讨厌了。


就个人而言,笔者认为合并指令是项目历史记录的重要组成部分,不应该在工作流中唯恐避之不及。


也就是说,可以使用此标记来过滤合并提交以查看项目的历史记录。


git log --oneline --no-merges



3. 改写上一个提交信息


若不小心提交了带有拼写错误或误导性提交信息的内容时,这个方法就派上用场了。


git commit -v --amend


-v是可选项,但由于其展示了许多更改相关的信息,笔者还是比较喜欢这个的,,有助于编写更具描述性的提交消息。


4. 移除所有未跟踪更改


尽管不言而喻,但以防有人对该概念不熟悉:


如果创建一个新的文件,且该文件在git历史中并不存在,那么就相当于进行了一个未跟踪更改。需要提交回购协议才能开始追踪该文件。



如果提交过程中改变了主意,随后又想撤销先前的更改,此时,git checkout可用于移除先前所有的追踪更改,但是未跟踪更改却仍然会四处浮动。为解决这个问题, git clean应运而生。


git clean -f –d


5. 输出酷炫的可视化日志


虽然这点只会让日志看起来很酷,但就可视化所有长期分支而言,这点还是十分有用的。


git log --pretty=oneline --graph --decorate --all


试试吧。


6. 向git请求一个变更日志


如果想知道更改内容和更改者的相关简要说明,可以向git申请变更日志类似的文件。


git shortlog ..HEAD


本例中,应将替换为希望在日志开始时执行的提交。大体上,用git shortlog eafbc3c.. HEAD的意思是,“让我看看从提交eafbc3c到现在发生了什么变化。”



按提交作者将短日志分组并显示每个提交消息的首行内容。若提交消息编写完善,则可很清楚地了解每个提交的实际操作。


利用一些巧妙的技巧,如git shortlog HEAD~20..,以此来获取最近20次提交的短日志。


7. 查看特定日期范围的日志


类似地,可能需要查看两天内回购的变化情况。


幸运的是,git可以实现这点。git log提交接受——以-since和-until作为标记。


所以若想知道2016年2月10日至2016年2月19日期间Solidus发生了什么,即可运行:


git log --since= FEB 10 2016  --until= FEB 19 2016



现在,就可以看到墨菲在二月中旬非常活跃。


8. 列出所有git别名


有时可能需要为一些指令添加别名,随后就忘记了,或者使用的共享配置就已经定义了一些别名。


这是笔者无意中发现的一个技巧,尽管这不是git独有的特性,但是git config指令确实发挥着它的功效,为我们所利用。


git config -l | grep alias | sed  s/^alias.//g


试试吧,看是不是有忘记的别名!


9. 搜索包含关键字的提交


如果确切地知道要查找的是哪段代码,或者确切地知道需要在哪些关键字上查找更改,则可以按代码搜索日志。


此时git会提供一个提交列表,而该列表以某种方式影响了包含搜索字符串的代码或文本。


git log -S"config.menu_items"


在本例中,笔者找到一个提交列表,而该提交列表以某种方式操纵了字符串config.menu_items。


10. git教程超级机密列表


不是秘密,而是超级机密:


git help -g


Git是一个十分强大的工具,充满许多巧妙的技巧。这个列表不够全面,所以大家可多做一些研究并阅读git相关文档。 

推荐阅读
【热点】获利上亿!一程序员主犯非法挖矿被抓
谷歌2019博士生奖研金名单出炉:清华、上交大、港中文入选最多
“你的裸照,一键生成”,令人害怕的不是算法,是人心
【技巧】Pandas循环提速7万多倍!
【热点】印度年轻人跟中国年轻人有什么不同
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/39645
 
610 次点击