1. Git自动补全
假使你使用命令行工具运行Git命令,那么每次手动输入各种命令是一件很令人厌烦的事情。
为了解决这个问题,你可以启用Git的自动补全功能,完成这项工作仅需要几分钟。
为了得到这个脚本,在Unix系统下运行以下命令:
1
2
3
|
cd ~ curl https: //raw.github.com/git/git/master/contrib/completion/git-completion.bash -o ~/.git-completion.bash |
然后,添加下面几行到你的 ~/.bash_profile 文件中:
1
|
if [ -f ~/.git-completion.bash ]; then . ~/.git-completion.bash fi |
尽管早些时候我们已经提到这个,但是强调的不够充分。如果你想使用git的全部功能特性,
你绝对应该切换到命令行界面!
2. 在 Git 中忽略文件
你是不是很烦那些编译过的文件 (比如 .pyc) 出现在你的 Git 仓库中?或者说你已经受够了已经把它们都加进了 Git 仓库?好了,这有个办法可以让你告诉 Git 忽略掉那些特定的文件和文件夹。只需要创建一个名为 .gitignore 然后列出那些你不希望 Git 跟踪的文件和文件夹。你还可以添加例外,通过使用感叹号(!)。
*.pyc *.exe my_db_config/ !main.pyc
3. 是谁弄乱了我的代码?
当事情出错时,先去指责别人是人类的天性之一。如果你的产品服务器挂了,使用git blame命令可以很容易找出罪魁祸首。这个命令可以将文件中的每一行的作者、最新的变更提交和提交时间展示出来。
1
|
git blame [file_name] |
在下面的截图中你可以看到命令是如何在更大的目录中搜寻。
4. 查看仓库历史记录
上一节我们已经学习了如何使用 git log ,不过,这里还有三个你应该知道的选项。
--oneline- 压缩模式,在每个提交的旁边显示经过精简的提交哈希码和提交信息,以一行显示。
--graph- 图形模式,使用该选项会在输出的左边绘制一张基于文本格式的历史信息表示图。如果你查看的是单个分支的历史记录的话,该选项无效。
--all- 显示所有分支的历史记录
把这些选项组合起来之后,输出看起来会像这样:
5. 绝对不要丢失对Commit的跟踪
假设你不小心提交了些你不想要的东西,不得不做一次强制重置来恢复到之前的状态。然后,你意识到在这一过程中你丢失了其它一些信息并且想要把它们找回来,或者至少瞅一眼。这正是git reflog可以做到的。
一个简单的git log命令可以为你展示最后一次commit,以及它的父亲,还有它父亲的父亲等等。而git reflog则列出了head曾经指向过的一系列commit。要明白它们只存在于你本机中;而不是你的版本仓库的一部分,也不包含在push和 merge操作中。
如果我运行git log命令,我可以看到一些commit,它们都是我仓库的一部分:
然而,一个git reflog命令则展示了一次commit (b1b0ee9–HEAD@{4}),它正是我刚才进行强制重置时弄丢的:
说着说着就到了文章的最后,我认为这些技巧会让你的 Git 水平提升到一个新的高度。Git 是最棒的,它几乎能实现你所能想到的事情。因此,要经常挑战自己的Git水平。最后你很有可能会学到新的东西。
推荐阅读:你的APP就是你的产品管理系统
相关推荐
在iteye博客平台上,作者yanguz123分享了关于这个项目的知识,可能涵盖了Git的使用技巧、Java编程实践以及如何利用这两个工具进行协作开发。 综上所述,【oschina_git_java 开源项目】旨在帮助开发者掌握Git和Java...
本文将深入探讨Git-Gosling源码中的关键概念和设计思想,旨在帮助开发者提升对Git的理解并学习到源码分析和调试的技巧。 首先,Git的核心是一个分布式版本控制系统,它以数据完整性为主导,采用SHA-1哈希算法来确保...
在编程世界中,编程修养是每位开发者不可或缺的素质,它涵盖了技术深度、学习态度、问题解决能力等多个方面。本文将深入探讨如何提升编程水平,帮助程序员成为更好的自己。 首先,专研精神是编程修养的核心。这不仅...
这份资料对于已经掌握Git基础的开发者来说,是提升理解和应用水平的宝贵资源。 有道笔记作为一个优秀的笔记工具,可以帮助用户整理和保存关于Git的知识点。你可以使用它来记录学习过程中的思考、疑问和解决方案,还...
《VC开发经验技巧》是一本全面探讨VC++开发实践的宝贵资源,共涵盖了21个章节,每个章节都深入浅出地介绍了不同的技术点和实战...通过系统学习这21个章节,开发者将能够更好地应对各种开发挑战,提高自己的专业水平。
Java作为一门广泛使用的编程语言,其底层知识点、源码解读、技术栈原理、工具最佳实践、功能实战以及问题排查和开发技巧是每个专业Java开发者必须掌握的核心内容。本压缩包"Java底层知识点、源码解读,技术栈相关...
版本控制工具Git的使用技巧;还有可能涉及构建工具Gradle的配置与优化,以及测试工具如JUnit和Mockito的运用。了解和熟练掌握这些工具能帮助开发者实现快速开发,高效调试,以及自动化工作流程。 除此之外,合集还...
在Android开发领域,深入理解源码对于提升开发者的技术水平至关重要。"Android源码——快捷查询源码.zip"这个压缩包提供了便捷查询Android源码的相关资料,帮助开发者更高效地理解和学习Android系统的内部工作原理。...
网站开发是一个涵盖广泛的技术领域,涉及前端界面设计、后端服务器处理、数据库管理以及用户体验优化等多个方面。...通过深入学习和实践,开发者可以不断提升自己的技术水平,构建出更优秀的网站。
GeoServer开发者手册涵盖了从入门到精通的全过程,无论是初学者还是经验丰富的开发者,都能从中找到所需的知识点和技巧。通过学习和实践,可以不断提升自己的技能,为GeoServer项目做出更大的贡献。
本资源“40种网站设计常用技巧”结合了Java编程语言的设计方法,旨在帮助开发者提升网站开发的专业水平。以下是一些重要的知识点: 1. **响应式设计**:确保网站在不同设备上(如手机、平板电脑和桌面电脑)都能...
本篇将深入探讨Red5 Eclipse Plugin Master的核心功能、安装步骤、使用技巧以及常见问题的解决策略,帮助开发者更好地利用这个工具提升工作效率。 1. **核心功能**: - **代码编辑与调试**:该插件提供了对Red5...
学习者可以利用Linux提供的工具和环境,如Makefile管理编译过程,版本控制系统Git进行代码管理,以及各种开源库和框架,来进一步提升编程水平。 总的来说,Linux系统下的C语言编程技巧涉及多方面的知识,包括但不...
总之,《Java开发利器Myeclipse全面详解》全面覆盖了Myeclipse的各项核心功能和使用技巧,无论是初学者还是经验丰富的开发者,都能从中获益匪浅,提升自己的Java开发水平。通过阅读这本书,你将能够熟练掌握...
本课程“cours_git_06-04”旨在深入讲解Git的基础知识和GitHub的使用技巧,帮助初学者快速掌握这两个强大的平台。 Git是一款分布式版本控制系统,由Linux创始人Linus Torvalds为管理Linux内核开发而创建。它允许...
总之,自定义来电秀Demo是一个关于Android开发的实践案例,它涵盖了反射、权限管理、UI设计和性能优化等多个方面,对于提升Android开发者的技术水平和创新能力具有很高的参考价值。通过学习和分析这个Demo,开发者...
同时,书中也涵盖了性能优化技巧,如缓存策略、数据库查询优化、使用OPcache等,帮助开发者构建响应迅速且资源消耗低的应用程序。 ### 结论 《Packt.Expert.PHP.5.Tools》是一本全面而深入的PHP开发指南,不仅提供...
【Android数独游戏源码】是一个开放源代码的项目,主要针对的是Android平台的游戏开发,尤其是对于数独这种经典的...同时,由于源码质量较高,开发者可以从中学习到很多最佳实践和编程技巧,进一步提升自己的专业水平。