Git中那些可怕的事

在 LinuxCon 北美会议上 FutureAdvisor 的 Corey Quinn 说:“Git 的确让你可以做一些超级强大的事。‘强大’,在这次讲演中,这是一种对愚蠢的委婉说法”。在使用 Git 时,谁没有经历让你感觉自己像个傻子的时刻?当然,Git 是很棒的,每个人都在使用它,你可以用几个基本命令完成你的大部分工作。但它也有一些强大的功能,让我们觉得我们不知道我们在做什么。

但这真的对我们来说不公平。没有人会知道一切,每个人知道的都不同。Quinn 提醒我们:“在我许多讲演的问答部分,人们有时举手说:“嗯,我有一个傻问题。” 你看到人们在那里说:“是啊!这是一个非常愚蠢的问题”。但是当他们得到答案时,那些这么说的人也正在低头记笔记。

Quinn 在演讲的开始做了一些有趣的演示,演示了一些你可以用 Git 做到的可怕的事情,例如变基主干然后进行强制推送来搞乱整个项目、胡乱输入一些命令让 git 吐槽、提交大型二进制文件等。然后他演示了如何使这些可怕的事情不怎么可怕,如更加明智地管理大型二进制文件。“你可以提交大型二进制文件,你可以在 Git 中暴力提交,如果你需要存储大的二进制文件,这里有两个工具会可以加速载入,一个是 git-annex,这是由 Debian 开发人员 Joey Hess 开发的,而 git-lfs 是由 GitHub 支持的。”

你经常同样地错误输入么?例如,当你想要 git status 时却输入 git stitis?Quinn 有一个方案:“Git 有内置的别名支持,所以你可以将相对较长、复杂的东西命名为一个短的 Git 命令。” 此外,你还可以使用 shell 别名。

Quinn 说:“我们都听说过变基主干然后强制推送这样的搞笑恶作剧,它会改变版本历史,突然发生的事情让所有人都措手不及,每个人都被卷入了这种混乱当中。一群鲸鱼被称为“pod”,一群乌鸦中被称为“谋杀”,一群开发者被称为“合并冲突”……更严重的是,如果有人干了这种事情,你有几个选择。包括从备份中恢复主干,还原提交;或者把责任人从屋顶上尖叫着扔下去。或者,采取一定的预防措施并使用一个并不知名的 Git 功能称为分支保护。启用分支保护后,无法删除或强制推送分支,并且在接受前,拉取请求pull request必须至少有一个审核。”

作者:CARLA SCHRODER

来源:51CTO

时间: 2024-07-29 00:44:46

Git中那些可怕的事的相关文章

管理中第一可怕之事(1) .

如果让每个人选一个管理(包括项目管理和部门管理)中最可怕的事,答案想必不尽相同. 有的人会老生常谈的选沟通不畅,有的人会选文化冲突,有的人会选资源不足等等. 但就我个人感受,第一可怕的事是说了不做,流行点的词可能叫执行力. 典型的场景是规则流程定义了一大堆,一到做的时候这些东西就都放在一边了. 每个人都按自己的习惯来,各行其是. 这很可怕,会导致无政府状态,做的人因为看不到改善而抱怨,管理者会因为看不到未来而绝望. 比如说我们周围路总修不好,对此大概没人认为是个技术问题---偷工减料怎么也不是技

管理中第一可怕之事(2) .

在考虑如何解决执行力问题之前,很有必要考察一下执行力为什么会败坏. 现实中很本质的东西往往会被繁杂的细节所掩盖,因此我们来抽象出一个虚拟的公司,来看看执行力出问题的各种可能性. 我们假设有一个小公司刚刚建立,其中高层2人,中层3人,一般员工30人. 我们假设在公司营业的第一天,执行力是没有问题的. 那么如果执行力最终出了问题,变成说了不做的状态,那么要么主要是高层问题,要么主要是中层问题,要么主要是一般员工问题. 每个角色均摊责任这种事过于巧合,不太可能存在. 假设一般员工应该负主要责任,那么假

管理中第一可怕之事(3) .

假设说一个人是个项目经理或部门经理,并一下子扎到了一个执行力不好的环境中,那么这个人能干点什么或者说应该干点什么? 大多时候中层的人并不能左右高层的性格乃至种种选择,所以如果真有让人绝望的事情,又没有忍耐的的能力那就只能换个地方. 这很简单,并不值得多谈,我们主要要关注的是事情积极的一面,即如何扭转这种局面. 为了有所改善,第一关键的事情是要足够真诚. 工程师组成的团队中其实并不需要很多政治,大多时候,大多事情是可以谈,并谈出以逻辑和事实为根据的最佳答案的. 中层和工程师间的隔阂大多时候起于一些

ERP实施中最可怕的是需求变更

辛辛苦苦熬了几个月的通宵,终于确立了erp需求,规范了工作流程,系统配置也完成了,正准备按部就班ERP系统上线时,企业用户突然改变了需求,不想这么做了,提出了新的需求.这对于ERP实施顾问来说,正如晴天惊雷,这也是所有ERP顾问最感到恐怖的事情.因为有时候,用户只是简单的一句话,但是对于系统的调整来说工作量是非常大的. 一.需求变更:迁就or拒绝? 从ERP项目立项开始,需求就是ERP实施顾问的心头之痛.随着对ERP的深入认识.项目环境的变动,企业内外部多种因素都可能使客户对ERP的需求不断改变

图片-git中使用push命令出现错误,如下图所示

问题描述 git中使用push命令出现错误,如下图所示 解决方案 远程已经有了部分提交,所以没办法直接提交.你先使用git fetch 获取远端最新代码,合并后再push

图解git中的最常用命令

本文原版英文材料见:A Visual Git Reference      此页图解git中的最常用命令.如果你稍微理解git的工作原理,这篇文章能够让你理解的更透彻. 如果你想知道这个站点怎样产生,请前往GitHub repository. 基本用法 上面的四条命令在工作目录.暂存目录(也叫做索引)和仓库之间复制文件. git add files 把当前文件放入暂存区域. git commit 给暂存区域生成快照并提交. git reset -- files 用来撤销最后一次git add f

Linus宣布将替换git中的SHA-1算法

SHA-1是曾被广泛使用一种hash算法,由美国国家安全局设计(NSA),并由美国标准技术研究院(NIST)发布成为标准.hash算法的一种基本用途是确认数据的可信性,即一组数据对应一条唯一的hash值,且无法找出具有相同hash值的两组不同数据.基于这种属性,git在设计之初也选择了SHA-1作为其内部数据块的唯一标识符. 当可以找到两组数据具有相同hash值时,这种hash算法就被认为不再安全.2005年,山东大学的王小云教授及其同事提出了破解SHA-1的理论方法,安全分析家们随即发出了警告

Git中需要熟记的命令小结_linux shell

提交流程相关 查看文件改动以及新增的文件 git status 添加新增文件 git add your_file_path // 添加全部文件 git add * // 添加某类型文件 git add dir/*.js 简单的提交文件 git commit -m "Commit message" 提交你所有的修改文件以及添加的文件 git commit -am 'your message' 撤销修改某个文件 git checkout -- <filename> 放弃本地所有

如何在Git中忽略某些文件

项目中经常会生成一些Git系统不需要追踪(track)的文件.典型的是在编译生成过程中 产生的文件或是编程器生成的临时备份文件.当然,你不追踪(track)这些文件,可以 平时不用"git add"去把它们加到索引中. 但是这样会很快变成一件烦人的事,你发现 项目中到处有未追踪(untracked)的文件; 这样也使"git add ." 和"git commit -a" 变得实际上没有用处,同时"git status"命令的