说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

12个git实战建议和技巧

HTML文档下载 WORD文档下载 PDF文档下载
git无疑是现在最热门的版本控制工具,而且正在进一步侵占SVN以及CVS的市场。本文作者从国外技术问答社区Stack Overflow整理的12个很实用的git使用技巧和建议,希望对你有帮助。

1.使用“git diff”来折叠多行


用git diff经常会出现很多内容,导致很多内容被遮住了,让人很是苦恼,幸运的是这里有个解决方案。

如果你使用less作为默认的pager,只需要输入-s,就可以保证不会被diff刷屏了。

或者,你也可以使用git config设置pager来达到同样的效果:

为当前项目设置pager:

  1. $ git config core.pager 'less -r'  

再将pager设置的作用域设置为整个项目:

  1. $ git config --global core.pager 'less -r'  

2.设置全局代理


在某些网络环境下,你可能需要为git配置代理,这很简单,只需要一行命令就可以了:

  1. git config --global https.proxy https://user:password@address:port 

3.clone某个特定分支


在某些大型项目中,或者只是图方便,有时候你可能只希望clone某个分支,你可以这样做:

  1. mkdir $BRANCH 
  2. cd $BRANCH 
  3. git init 
  4. git remote add -t $BRANCH -f origin $REMOTE_REPO 
  5. git checkout $BRANCH 

4.比较某个文件和远程分支上的区别


很简单:

  1. git diff localbranch remotebranch filepath 

5.列出版本库中所有已删除的文件


也许你是想将其恢复,因此需要仔细确认某些merge操作,无论如何,列出版本库中所有已删除的文件会非常有帮助。你只需要这样做:

  1. git log --diff-filter=D --summary 

如果你想将其恢复,参照这里。

如果你不想知道是哪次commit中删除的,只需要添加一个grep delete。

  1. git log --diff-filter=D --summary | grep delete 

6.在版本库所有版本中搜寻一条字符串


往往你想要查找某段代码、某个函数、一个常量、一个文件,但是却找不到了。它被删除了,什么时候删除的?这个小技巧能搜索整个版本库中git diff信息,可能会花些时间,但是非常有用:

  1. git rev-list --all | ( 
  2.     while read revision; do 
  3.         git grep -F 'Your search string' $revision 
  4.     done 

7.应用另外一个(不相关的)本地版本库中的patch


从另一个版本库中cherry-pick一条提交记录,首先需要将那个版本库作为一个远程版本库添加进来,并fetch其变化,然后cherry-pick其提交记录。

如果你追求速度,也可以使用这个未经优化的命令:

  1. git --git-dir=../some_other_repo/.git format-patch -k -1 --stdout <commit SHA>| git am -3 -k 

8.从新的主干中分出一个新分支


有时候你会在better_brach上工作一段时间,并准备将其设为新的master,你会怎么做?

这里是Stack Overflow上提供的常规解决方案:

1.切换到better_brach分支:

  1. git checkout better_branch 

2.保留better_branch分支全部内容,但是记录合并:

  1. git merge --strategy=ours master 

3.切回mater

  1. git checkout master 

4.快速合并

  1. git merge better_branch 

5.如果你想让合并步骤变得更清晰,可以添加commit信息。只需要修改下第二步:

  1. git merge --strategy=ours --no-commit master 
  2. git commit # Here add your custom message to the commit template 

9.向分支提交一个初始的空commit,保证完全复位


这样会重写历史记录,所以只能在未和任何人分享前做,否则将可能把同事者的文件破坏。

1.创建一个新的空分支,例如:newroot

  1. git checkout --orphan newroot 
  2. git rm --cached -r . 
  3. git clean -f -d 

2.创建空的commit

  1. git commit --allow-empty -m '[empty] initial commit' 

3.重新发送分支的全部内容

  1. git rebase --onto newroot --root master 

4.删除临时分支newroot

  1. git branch -d newroot 

现在master就已经包含了一个空的root commit了。

10.清空一个分支来做些不同的事


有时候你会想要从某个分支重新开始,或者打算保留一些逻辑上和主干相关但是跟踪另一个跨职能方面的代码,就像GitHub项目的gh-pages。

但如果你只想重新开始某个分支,清空所有历史记录呢?

1.检出(checkout)一个分支:

  1. git checkout -b branch_to_zero 

2.跟上条一样,先建立增加一个初始的空commit,之后就可以通过重新设置来清空一个分支。

3.使用hard重置分支到刚刚创建的初始commit:

  1. git reset --hard initial_commit 

11.如何修改一个特定的commit?


当你想在推送前重做你最后的commit时,可以使用修改命令(git commit --amend)。如果你想修改的不是最后一个commit呢?

这种情况下,你可以使用git rebase,例如,你想要修改bbc643cd commit,运行下面的命令:

  1. $git rebase bbc643cd^ --interactive  

在默认的编辑器中选择并修改你期望修改的,然后保存修改并输入:

  1. $ git add <filepattern>  

现在你就可以使用

  1. $git commit --amend 

来修改commit,之后使用

  1. $ git rebase --continue  

返回之前最新的commit。

12.如何隐藏多个已修改文件中一个?


git stash --keep-index命令可以用来隐藏上次commit中没有add的东西,之后add想要提交的文件并运行相应命令就可以了。

按照下面的提示,你可以把一条老的commit提交到多个变更集中:

互动地rebase最后一条好的commit:

  1. git rebase -i last_good_commit 

将某些变化标记为edit:

  1. git reset HEAD^ 
  2. git add file1 file2 file3 

添加相应的文件:

  1. git add file1 file2 file3 

因此之前没有添加的文件:

  1. git stash --keep-index 

别忘了收尾:

  1. git commit 
  2. git stash pop 

有必要的话,重复第二步之后的步骤:

  1. git rebase --continue 

原文链接:durdn.com

字符串中文的问题 -VB资料 巧用CLIPBOARD建立图像数据库-VB资料 在VB中存取数据库中的图片 Access97的报表解决方案-VB资料 Access下如何使用通用对话框-VB资料 ADO简介 -VB资料 ADO三大对象的属性、方法、事件及常数(二)-VB资料 ADO三大对象的属性、方法、事件及常数(三)-VB资料 ADO三大对象的属性、方法、事件及常数(一)-VB资料 Data 控件使用有密码的 Access 数据库 -VB资料 Excel、Access、VB的结合应用 Microsoft SQL Server 7.0安装问题(二)-VB资料 主题: MDB文件的导出 使用 DAO-VB资料 Microsoft Access秘密、技巧和陷阱-VB资料 SQL的基本操作(1.数据类型) -VB资料 SQL的基本操作(2.数据库的相关操作)-VB资料 SQL的基本操作(3.表的相关操作) -VB资料 SQL的基本操作(4.数据的检索)-VB资料 SQL在VB中的使用及访问远程数据库 Text 转换为 Access MDB -VB资料 VB5.0数据库基础 非编程方式访问数据库-VB资料 VB用编程方式访问数据库 VB 5.0数据库设计技术讲座(4) VB5.0数据库编程经验小集 VB5在处理数据库时的几个“BUG” VB6.0中的几个新增数据库工具 VB处理数据库时求数据表记录总数的最佳方法 VB访问数据库的方案比较 VB数据库编程经验两则 VB数据库编空字段的处理 高手指教 配机!!求助!!(进者有分啊) 这样简单的程序怎么通不过! session值修改还是未解决。 一个问题? flashget怎么用? 怎么相应动态创建的控件的事件 关于多媒体播放器的问题 快结婚了,可男朋友依旧把前女友的照片当成宝贝,我该怎么办? 建议组织一个水园老五大联盟。有支持的请up ! jspsmartupload上传100M以上的文件报错怎么办? 高分求助! 在那里下载jsp服务器的软件? 大家帮个忙,急寻南京兼职,饿死了 在unix下如何编译自己写好的c语言程序? 有个问题请教 ? 保存电脑技巧的问题。 在linux下怎么使用SAMBA使用windows下面的东西? 菜鸟级问题 我要在com+中间层返回sqlserver服务器的时间,怎么通过sql语句实现? 女友是空姐没有安全感怎么办 有几个概念不清楚, 劳驾哪位给解释一下 在unix下如何编译自己写好的c语言程序? Listbox 拖放的问题!解决就给100分! orical 我的测试连接失败! 小问题,别笑! 新手对指针的理解,大家指点指点,多谢!! 重载问题??? 高分求助! 哪里有截取vpn数据包的代码学习啊??? 怎样写贴子的标题才能吸引大家的注意?举例者一律给分! 关于API 为什么我的资源管理器反应很慢? 南京远志科技公司怎么样,马上要去面试了,请大家谈谈情况 请问这是什么意思 100分马上给 升四个▲了,散分!!!顺便问问那些两个星星的,你们升到两个星星以后的心情是什么样的?会不会有些失落感? 谁知道mediaplay控件 有没有直接到 一段视频文件结尾的方法 用quickstart出现地问题 小弟没写过事务,请教下面这个功能怎么写 万分着急! 在线等候!求和问题 怎么在sql server 的存储过程中调用它的异常处理呢? 劳累了一天了,希望在水园的朋友们今晚愉快:) hub上的uplink口跟其他的有什么区别啊? 为什么灌水圆只有回复数,没有点击数!强烈要求显示点击数!同意的近来投票! 帮帮忙 正则表达式,验证TEXTBOX输入的是手机号码,并且textbox不允许空着。 c#里求y=sin(x)怎样实现的?用什么类? 关于UI 线程的奇怪问题,请高手指教 来者有分,求和问题!! 一个关于C++与数据库连接的问题!-----------100分 细胞生长,核糖体的数量增加,物质交换速率增强为什么错( ⊙o⊙?) 摩尔根是什么 在医院中的ECG检查是心电图检查吗?正常人的血压范围是多少? 布洛维光学硬度计技术参数是什么? 摩尔根怎么样 饰品镀金厚度单位怎么称呼?电镀公司说一般镀金为:0.5 中文发音好像是 (“买”字第一声调)请问这个单位是什么?有多厚?是不是用 um 作单位的? 胶黏剂的表面张力越大,表面能越低,粘接效果越好,是这样么? 摩尔根的故事 问下在XP中如何计算我写的文章字数 有谁了解的说下吧,不好意思, LC振荡电路中为何当电容中q最小时,电路中I最大?为何当电容中电量最小时,电路中电流最大?希望从过程分析,不从能量角度 当电容电压大于交流电源瞬时电压时,电容是否会放电吗?我想知道电容在交流电的情况下,其充放电的详细过程?还有其串联回路中的电阻电压变化情况及其波形是怎样的? 问下在XP中如何计算我写的文章字数有谁了解的说下吧,不好意思,麻烦各位1G 世界上会用流线型下降的鸟是什么 平行板电容器串、并联电压与电源电压各为什么关系?为什么? 请问大家下在XP中如何计算我写的文章字数有谁了解的说下吧,不好意思,麻烦各位9G 女性泌尿系统有哪些器官构成 谁知道做害怕意思的shen是哪个字呢? 自由电子是从负极到正极吗?甲、乙两个金属球,甲球带正电,乙球带负电.若将它们接触,则(C)A.自由电子从甲球到乙球,电流从甲球到乙球.B.自由电子从甲球到乙球,电流从乙球到甲球.C.自由电 开姆洛克《220.205》怎么和橡胶粘不牢啊粘住以后很容易就开了粘不牢啊.还有就是6108怎么样啊.金属与胶粘剂粘不牢.铁件上都用砂轮机打磨过. 关于什么EXOmv闹鬼是怎么回事= 看留言说很恐怖所以就特意没看那里,很好奇那个闹鬼的画面是什么?如题 自由电子定向移动是不是由负极移到正极,电流方向是不是由正极移到负极 涂有开姆洛克220的金属与橡胶出现脱离现象是什么造成的吧求求各位大哥大姐们,205做底涂,能举几个实例吗? 请问大家一下在XP中如何计算我写的文章字数 有谁了解的说下吧,感受大伙了劫3 原电池,负极的自由电子为什么会无缘无故全跑到正极啊,而且是全部,锌那边真的一点H2都不生成吗Zn那边真的不会生成一点H2吗, 列克纳与开姆洛克有什么区别大面积的金属与橡胶粘结哪种比较合适 谁知道在XP中如何计算我写的文章字数 有谁了解的说下吧, 高锰酸钾和甲酸怎么反应(在碱性条件下) 氢氧化钠和氯化铝的问题向a mol NaOH溶液中逐滴加入含b mol AlCl3溶液 若a+b=1,当a取不同值时,生成物可能有如下情况,试回答:(1)全部是氢氧化铝时,a的取值范围是_(2)全部是偏铝酸钠时,a的 请问大家一下在XP中如何计算我写的文章字数 有谁了解的说下吧, 细铜管堵住了怎么办 内径是1毫米长度为5公分而且一端带弯头 里面是潮湿的重钙 氟橡胶跟金属连接用什么胶 用开姆洛克205行不行 还需要添加什么开姆洛克其他型号混合吗? 枭字怎么拼读 并说明理由 为什么我的硬度越来越差了,没有性生活也没有手 淫,有什么办法可改善甚至加强?还有真的有药物能使小弟弟增大增粗吗 倩字的罗马拼音怎么拼写? 地球上现存体形最大的鸟是什么? 泌尿系统的主要器官 凸透镜使光线折射?凹透镜使光线反射?这两句话对么? 怎麽样将弱肉强吃改为:强肉弱吃 定理了这个社会自然界真是弱肉强吃如:一辆大货车(强者)撞了一个小妹妹(弱者)如:一个老虎(强者)吃了一只小鸡(弱者)如:一个恶霸(强者) OP平分∠AOB,过点P作OP的垂线分别交OA、OB于点C、D 请问:PC=PD吗?为什么?能不能利用角平分线的性质求证呢? 泌尿系统的主要器官是() sheng(shen)得慌怎么写? 请问,对角线元素均为0的对称矩阵,它是半正定的吗?是否是这样的呢:半正定矩阵的对角线元素是非负的,而且零矩阵是一个特殊矩阵。请问对角线元素为0一定能推出是半正定吗? 分辨石头同学们都喜欢小明从乡下带来的漂亮小石头.小明从中取出两块石头说:“这两块石头,一块是高山上的,一块是海边的,谁能最先分辨出来就奖给谁.”同学们,你能分辨出来吗?请说一说 (shen/sen)得慌那个字怎么写? 电子元器件一般含有阻燃剂吗 “.shen"重怎么写 请问大家一下在XP中如何计算我写的文章字数熟悉的看下吧,感受大伙了8e 已知:如图,P是角AOB平分线上的一点,PC垂直于OA,PD垂直于OB,垂足分别为C,D.求证: (1)OC=OD; (2)OP是CD的垂直平分线. 请问下有谁知道在XP中如何计算我写的文章字数 有点着急了啊,打心底麻烦各位 自由电荷从电池正极流出,由负极返回.这句话对吗?自由电荷从电池正极流出,由负极返回.这句话对吗? 什么是原初电荷分离原理? 泌尿系统的主要器官是( 每个( )是由大约100多万个( )组成的?它又是由( ),( ),( )组成. 在闭合的干电池中,电场力电场力如何推动自由电荷充负极向正极运动?这电场力又由什么东西组成的? 为什么电源正负极总保持一定数量的正负电荷.电源没有接入电路时,正负极会保持一定数量的正负电荷吗?我们老师说电路中有电流时,是所有导体和导线中的自由电子定向移动,这样的话正极 谁知道在XP中如何计算我写的文章字数 有谁了解的说下吧,打心底感谢了北4 白云 处有人家,shen是哪个?深还是生?>O 传送带例题在这求几道传送带相关的综合问题(多过程) 有关摩尔根的知识 心电图机英文说明 ECG 8800说明1.PAER SPEED 2.FILER SENSITVITY 3.RESET 4.LEAD 5.SELECTOK 6.START 7.CHECK 以上是 机器上的按钮 英文个位大虾 帮我 孙杨无证驾驶被杭州警方处行政拘留7天罗马教皇罕见就敏感问题展开民调 欲改日本一男子酒后驾驶 撞伤4名中学生后调查称超6成贝卢斯科尼支持者支持其女伊朗称希望与“六方”就核计划开展严肃澳大利亚人口出生率回升 总量破230澳洲癌症死亡率调查:农村地区高于城市美国10月制造业增速为两年半来最快巴新一村庄因强降雨引发山体滑坡 或已eBay拍卖大屠杀遗物引众怒 一件囚数万伊朗抗议者举行“占领美国使馆”集安倍明年1月将访问非洲三国 意在完成巴新一村庄因强降雨引发山体滑坡 或已英国调查称超半数英国人坐飞机不信任女美国高中生图书馆借书逾期不还 被警方美国10月制造业增速为两年半来最快埃及今天审判前总统穆尔西 数千支持者德国民众用万余蜡烛组成心形 欲打破世美国海军一高官被控受贿 其中包括性贿数万伊朗抗议者举行“占领美国使馆”集新加坡鱼翅消费量大幅下跌测了半天,油耗最低的竟然是这个品牌!同样是喝酒开车~为啥欧洲就没事?中国量子通信迎来重大利好(附股)没下手的电影推荐《爱的那些性事》美国人这样测试孩子的社交能力黔东南州公共资源交易中心“互联网+政兴义交警:压路机轰隆隆 销毁“响管”W坐姿虽萌,对小朋友发育有害夏娃,原来你是亚当的铅笔啊一段时间只卖一本书的书店INS网红百万富翁「网络欺凌」背后的庞大生意关于喵星人的12件奇怪事实快速调处不留隐患 锦屏公安成功化解一黄平县“三跨联”探索“支部联建”促同雷山:530万元小额贷款圆98名妇女圣诞&元旦北京城内有啥好逛的?10道题测你对婚姻的需求苏珊米勒1229|金星在射手座,有人谈恋爱最任性的星座,杀伤力不要太大!脸盲症星座患者,请救救他们
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘