Git 进阶:10大技巧让你迅速提升
1.Git自动补全
假使你使用命令行工具运行Git命令,那么每次手动输入各种命令是一件很令人厌烦的事情。
命令:
cd ~
curl https://raw.github.com/git/git/master/contrib/completion/git-completion.bash -o ~/.git-completion.bash
然后,添加下面几行到你的 ~/.bash_profile 文件中:
if [ -f ~/.git-completion.bash];then
.~/.git-completion.bash
fi
2.在Git中忽略文件
Git忽略掉那些特定的文件和文件夹,只需要创建一个名为 .gitgnore然后列出那些你不希望Git跟踪的文件和文件夹。
你还可以添加例外,通过使用感叹号(!).
*.pyc
*.ext
my_db_config/
!main.pyc
3. 显示文件中每一行的作者,最新的变更提交和提交时间展示出来。
git blame [file_name]
git blame demonstration
4.查看仓库历史记录
上一节我们已经学习了如何使用git log,不过,这里还有三个你应该知道的选项。
--oneline- 压缩模式,在每个提交的旁边显示经过精简的提交哈希码和提交信息,以一行显示。
-graph- 图形模式,使用该选项会在输出的左边绘制一张基于文本格式的历史信息表示图。如果你查看的是单个分支的历史
记录的话,该选项无效。
--all- 显示所有分支的历史记录
5 绝对不要丢失对commit的跟踪
假设你不小心提交了你不想要的东西,不得不做一次强制重置来恢复到之前的状态。然后,你意识到在这一过程中
你丢失了其他一些信息并且想要把他们找回来,或者至少看一眼,这正是git reflog可以做到的。
一个简单的git log 命令可以为你展示最后一次commit,以及他的父亲,还有他父亲的父亲等等。
而git reflog则列出了head曾经指向过的一系列commit。要明白他们只存在于你本机中;而不是你的版本仓库的一部分,
一不包含在push和merge操作中。
6.暂存文件的部分改动
一般情况下,创建一个基于特性的提交是比较号的做法,意思是每次提交都必须代表一个新特性的产生或者
是一个bug的修复。如果你修复了两个bug,或者添加了多个新特性但是却没有提交这些变化会怎样呢,
在这种情况下,你可以把这些变化放在一次提交中。但更好的方法是把文件暂存(Stage)然后分别提交。
例如你对一个文件进行了多次修改并且想把他们分别提交。这种情况下,你可以在add命令中加上-p参数
git add -p [file_name]
我们来演示一下在file_name文件中添加了3行文字,但只想提交第一行和第三行。先看一下git diff 显示的结果:
7.压缩多个commit
用rebase命令把多个commit压缩成一个
git rebase -i HEAD~[number_of_commits]
如果你想要压缩最后两个commit ,你需要运行下列命令。
git rebase -i HEAD~2
9.检查丢失的提交
尽管 reflog是唯一检查丢失提交的方式。但它不是适应于大型的仓库。那就是fsck(文件系统检测)
git fsch --lost-found
Git 进阶:10大技巧让你迅速提升的更多相关文章
- 快速开发 jQuery 插件的 10 大技巧(转)
1. 把你的代码全部放在闭包里面 这是我用的最多的一条.但是有时候在闭包外面的方法会不能调用.不过你的插件的代码只为你自己的插件服务,所以不存在这个问题,你可以把所有的代码都放在闭包里面.而方法可能应 ...
- 程序员心髓:移动应用API设计10大技巧
移动App与基于Web/云服务发生对话是很常见的事情,最简单的可能仅仅只是检索数据,但也可能包含发送数据.用户授权和管理.而这也就验证了为移动应用建立API的重要性,为此,我们特总结了10大移动API ...
- 快速开发 jQuery 插件的 10 大技巧(转)
转自:http://www.oschina.net/news/41776/jquery-10-tips 在开发过很多 jQuery 插件以后,我慢慢的摸索出了一套开发jQuery插件比较标准的结构和模 ...
- 快速开发 jQuery 插件的 10 大技巧
在开发过很多 jQuery 插件以后,我慢慢的摸索出了一套开发jQuery插件比较标准的结构和模式.这样我就可以 copy & paste 大部分的代码结构,只要专注最主要的逻辑代码就行了. ...
- 快速开发jQuery插件的10大技巧
原文链接:http://wiki.itivy.com/?p=36 在开发过很多 jQuery 插件以后,我慢慢的摸索出了一套开发jQuery插件比较标准的结构和模式.这样我就可以 copy & ...
- linux服务器安全配置10大技巧
1.禁止ping/etc/rc.d/rc.localecho 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all2.对用户和口令文件进行权限控制chmod 6 ...
- [转]成为优秀Java程序员的10大技巧
转自:http://www.codeceo.com/article/10-good-java-programmer-tips.html Java程序员有许多应遵循的守则或最佳实践方式.本文概述了每个开 ...
- java数组10大技巧
0. 声明一个数组(Declare an array) String[] aArray = new String[5]; String[] bArray = {"a"," ...
- 让PHP开发者事半功倍的十大技巧
如果你使用一面大镜子作为冲浪板会发生什么?或许你会在较短的时间内征服海浪,但是你肯定从内心深处明白,这不是冲浪的正确选择.同样的道理也适用于PHP编程,尽管这样的类比听起来有一些古怪.我们经常听到有人 ...
随机推荐
- ES6--反引号的使用
/*动态初始退出登出框话模态框*/ /*动态的初始化退出登陆模态框 反引号ES6语法 * 为什么在使用字符串格式直接创建模态框 * 1.不能在html页面中创建模板,因为如果换一个页面就没有对应的模板 ...
- LintCode_100 删除排序数组中的重复数字 ||
题目 跟进“删除重复数字”: 如果可以允许出现两次重复将如何处理? 样例 给出数组A =[1,1,1,2,2,3],你的函数应该返回长度5,此时A=[1,1,2,2,3]. C++代码 int rem ...
- redis异常-MISCONF Redis is configured to save RDB snapshots
在eclipse中用java代码通过jedis操作redis的时候,报这个错: redis.clients.jedis.exceptions.JedisDataException: MISCON ...
- file.length()方法返回0字节
本地调试ok 扔到服务器上就返回0 初步估测是因为使用jnotify监控文件修改事件的时候,刚好文件被重命名了(下载完成后xxx.tmp,被改成正确的后缀名) 2019-7-20:不是上边说的那个亚子 ...
- 2019-9-2-windows-10「设置」应用完整ms-settings快捷方式汇总
title author date CreateTime categories windows-10「设置」应用完整ms-settings快捷方式汇总 lindexi 2019-09-02 12:57 ...
- hdu 1711Number Sequence (KMP入门,子串第一次出现的位置)
Number Sequence Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- IO流-文件操作
一.字节流读/写 文件 1.字节流 方式读取文件
- PHP定时任务获取微信access_token的方法
一.使用brew安装php多版本方法 # brew install php56# brew install php70二.安装切换工具 # brew install php-version# sour ...
- 【php】php开发的前期准备
原文来自:http://www.cnblogs.com/sows/p/6867675.html (博客园的)风马一族 侵犯版本,后果自负 php介绍 什么php? 一种服务器端的 HTML 脚本/编程 ...
- 【POJ 3294】Life Forms
[链接]h在这里写链接 [题意] 给你n个字符串. 让你找最长的字符串s; 这个s在超过一半的子串里面都有出现过且长度大于n/2; 如果有多个,输出多行. (按字典序输出) 也没说会不会出现大写. [ ...