Git中那些可怕的事
在 LinuxCon 北美會(huì)議上 FutureAdvisor 的 Corey Quinn 說(shuō):“Git 的確讓你可以做一些超級(jí)強(qiáng)大的事。‘強(qiáng)大’,在這次講演中,這是一種對(duì)愚蠢的委婉說(shuō)法”。在使用 Git 時(shí),誰(shuí)沒(méi)有經(jīng)歷讓你感覺(jué)自己像個(gè)***的時(shí)刻?當(dāng)然,Git 是很棒的,每個(gè)人都在使用它,你可以用幾個(gè)基本命令完成你的大部分工作。但它也有一些強(qiáng)大的功能,讓我們覺(jué)得我們不知道我們?cè)谧鍪裁础?/p>
但這真的對(duì)我們來(lái)說(shuō)不公平。沒(méi)有人會(huì)知道一切,每個(gè)人知道的都不同。Quinn 提醒我們:“在我許多講演的問(wèn)答部分,人們有時(shí)舉手說(shuō):“嗯,我有一個(gè)傻問(wèn)題。” 你看到人們?cè)谀抢镎f(shuō):“是啊!這是一個(gè)非常愚蠢的問(wèn)題”。但是當(dāng)他們得到答案時(shí),那些這么說(shuō)的人也正在低頭記筆記。
Quinn 在演講的開(kāi)始做了一些有趣的演示,演示了一些你可以用 Git 做到的可怕的事情,例如變基主干然后進(jìn)行強(qiáng)制推送來(lái)搞亂整個(gè)項(xiàng)目、胡亂輸入一些命令讓 git 吐槽、提交大型二進(jìn)制文件等。然后他演示了如何使這些可怕的事情不怎么可怕,如更加明智地管理大型二進(jìn)制文件。“你可以提交大型二進(jìn)制文件,你可以在 Git 中暴力提交,如果你需要存儲(chǔ)大的二進(jìn)制文件,這里有兩個(gè)工具會(huì)可以加速載入,一個(gè)是 git-annex,這是由 Debian 開(kāi)發(fā)人員 Joey Hess 開(kāi)發(fā)的,而 git-lfs 是由 GitHub 支持的。”
你經(jīng)常同樣地錯(cuò)誤輸入么?例如,當(dāng)你想要 git status 時(shí)卻輸入 git stitis?Quinn 有一個(gè)方案:“Git 有內(nèi)置的別名支持,所以你可以將相對(duì)較長(zhǎng)、復(fù)雜的東西命名為一個(gè)短的 Git 命令。” 此外,你還可以使用 shell 別名。
Quinn 說(shuō):“我們都聽(tīng)說(shuō)過(guò)變基主干然后強(qiáng)制推送這樣的搞笑惡作劇,它會(huì)改變版本歷史,突然發(fā)生的事情讓所有人都措手不及,每個(gè)人都被卷入了這種混亂當(dāng)中。一群鯨魚(yú)被稱(chēng)為“pod”,一群烏鴉中被稱(chēng)為“謀殺”,一群開(kāi)發(fā)者被稱(chēng)為“合并沖突”……更嚴(yán)重的是,如果有人干了這種事情,你有幾個(gè)選擇。包括從備份中恢復(fù)主干,還原提交;或者把責(zé)任人從屋頂上尖叫著扔下去?;蛘?,采取一定的預(yù)防措施并使用一個(gè)并不知名的 Git 功能稱(chēng)為分支保護(hù)。啟用分支保護(hù)后,無(wú)法刪除或強(qiáng)制推送分支,并且在接受前,拉取請(qǐng)求pull request必須至少有一個(gè)審核。”


2012-05-01 08:06:49
2024-02-04 17:03:30




