- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第 7 章 Git⼤师技
到现在,你应该有能⼒查阅 git help 页,并理解⼏乎所有东西。然⽽,查明解决特 定
问题需 的确切命令可能是乏味的。或许我可以省你点功夫:以下是我过去曾经需
的⼀些⾷谱。
源码发布
提交变更
我的提交太⼤了 !
索引:Git的中转区域
别丢了你的HEAD
HEAD捕猎
基于Git构建
⼤胆的特技
阻⽌坏提交
源码发布
就我的项⽬⽽⾔,Git完全跟踪了我想打包并发布给⽤户的⽂件。创建⼀个源码包,我
运 ⾏:
$ git archive --format=tar --prefix=proj-1.2.3/ HEAD
提交变更
对特定项⽬⽽⾔,告诉Git你增加,删除和重命名了⼀些⽂件很⿇烦。⽽键⼊如下命令
会容易的多:
$ git add .
$ git add -u
Git将查找当前⽬录的⽂件并⾃⼰算出具体的情况。除了⽤第⼆个add命令,如果你也
打 算这时提交,可以运⾏git commit -a。关于如何指定应被忽略的⽂件,参
见 git help ignore 。
你也可以⽤⼀⾏命令完成以上任务:
$ git l -file -d -m -o -z | xarg -0 git update-index --add --rem
这⾥ -z 和 -0 选项可以消除包含特殊字符的⽂件名引起的不良副作⽤。注意这个 命令
也添加应被忽略的⽂件,这时你可能需 加上 -x 或 -X 选项。
我的提交太⼤了!
是不是忽视提交太久了?痴迷地编码,直到现在才想起有源码控制⼯具这回事?提交
⼀ 系列不相关的变更,因为那是你的风格?
别担⼼,运⾏:
$ git add -p
为你做的每次修改,Git将展⽰给你变动的代码,并询问该变动是否应是下⼀次提交的
⼀ 部分。回答“y”或者“n” 。也有其他选项,⽐如延迟决定;键⼊“ ?”来学习更多。
⼀旦你满意,键⼊
$ git commit
来精确地提交你所选择的变更 (阶段变更)。确信你没加上 -a 选项,否则Git将提交
所有修改。
如果你修改了许多地⽅的许多⽂件怎么办?⼀个⼀个地查看变更令⼈沮丧,⼼态⿇
⽊。 这种情况下,使⽤ git add -i , 它的界⾯不是很直观,但更灵活。敲⼏个键,你
可 以⼀次决定阶段或⾮阶段性提交⼏个⽂件,或查看并只选择特定⽂件的变更。作为
另⼀ 种选择,你还可以运⾏ git commit --interactive ,这个命令会在你操作完后⾃动
进⾏提交。
索引:Git 的中转区域
当⽬前为⽌,我们已经忽略Git著名的索引‘概念,但现在我们必须⾯对它,以解释上
⾯发⽣的。索引是⼀个临时中转区。Git很少在你的项⽬和它的历史之间直接倒腾数
据。 通常,Git先写数据到索引,然后拷贝索引中的数据到最终⽬的地。
例如, commit -a 实际上是⼀个两步过程。第⼀步把每个追踪⽂件当前状态的快照放
到索引中。第⼆步永久记录索引中的快照。 没有 -a 的提交只执⾏第⼆步,并且只在
运⾏不知何故改变索引的命令才有意义,⽐如 git add 。
通常我们可以忽略索引并假装从历史中直接读并直接写。在这个情况下,我们希望更
好 地控制,因此我们操作索引。我们放我们变更的⼀些的快照到索引中,⽽不是所有
的, 然后永久地记录这个⼩⼼操纵的快照。
别丢了你的HEAD
HEAD好似⼀个游标,通常指向最新提交,随最新提交向前移动。⼀些Git命令让你来
移动 它。 例如:
$ git re et HEAD~3
将⽴即向回移动HEAD三个提交。这样所有Git命令都表现得好似你没有做那最后三个
提交, 然⽽你的⽂件保持在现在的状态。具体应⽤参见帮助页。
但如何回到将来呢?过去的提交对将来⼀⽆所知。
如果你有原先Head的SHA 1值,那么:
$ git re et 1b6d
但假设你从来没有记下呢?别担⼼,像这些命令,Git保存原先的Head为⼀个叫
ORIG_HEAD的标记,你可以安全体⾯的返回:
$ git re et ORIG_HEAD
HEAD捕猎
或许ORIG_HEAD不够。或许你刚认识到你犯了个历史性的错误,你需 回到⼀个早
已忘记 分⽀上⼀个远古的提交。
默认,Git保存⼀个提交⾄少两星期,即使你命令Git摧毁该提交所在的分⽀。难点是
找 到相应的哈希值。你可以查看在.git/objects⾥所有的哈希值并尝试找到你期望的。
但 有
您可能关注的文档
- 大数据存储及处理-第三讲.ppt
- 最新生儿用品准备和准妈妈入院前准备清单.doc
- 最优化方法第二节_线搜索算法_最速下降法.pdf
- 大同雅思词汇在线学习及记忆.docx
- 大型桥梁健康监测概念及监测系统设计_张启伟.pdf
- 白酒分类与概况.pptx
- 白流苏的_破俗_及_随俗_从白流苏的心路历程看中国女性的民俗心理_陈超颖.pdf
- 大学VF课件 数据表基本操作.ppt
- 大学毕业论文中插入页码和生成目录的方法.doc
- 大学电路基础第一篇.ppt
- 第十一章 电流和电路专题特训二 实物图与电路图的互画 教学设计 2024-2025学年鲁科版物理九年级上册.docx
- 人教版七年级上册信息技术6.3加工音频素材 教学设计.docx
- 5.1自然地理环境的整体性 说课教案 (1).docx
- 4.1 夯实法治基础 教学设计-2023-2024学年统编版九年级道德与法治上册.docx
- 3.1 光的色彩 颜色 电子教案 2023-2024学年苏科版为了八年级上学期.docx
- 小学体育与健康 四年级下册健康教育 教案.docx
- 2024-2025学年初中数学九年级下册北京课改版(2024)教学设计合集.docx
- 2024-2025学年初中科学七年级下册浙教版(2024)教学设计合集.docx
- 2024-2025学年小学信息技术(信息科技)六年级下册浙摄影版(2013)教学设计合集.docx
- 2024-2025学年小学美术二年级下册人美版(常锐伦、欧京海)教学设计合集.docx
文档评论(0)