苦惱
你有沒(méi)有為了學(xué)git的經(jīng)歷一而再再而三查看別人的文檔還是學(xué)不會(huì)的經(jīng)歷,只是它逞刷、因?yàn)槟銢](méi)有使用git的需要溶诞,更何況繁瑣的命令行讓人頭疼,什么緩存區(qū)笼恰,分支辽话,HEAD,合并分支這些讓人頭疼的東西敬而遠(yuǎn)之帆喇,有一款github官方的應(yīng)用程序就是為了小白而生的警医,這篇教程里不會(huì)介紹任何一個(gè)命令但是看完之后你能輕松使用git。
git介紹
什么是git坯钦?間接的說(shuō)git是分布式版本控制工具预皇,這你或許看過(guò)很多遍了,但是我還是想在這里重復(fù)一遍婉刀,git可以在一下情境中很有用:
你在寫(xiě)一篇很長(zhǎng)的論文吟温,比如說(shuō)論文的開(kāi)頭介紹, 相關(guān)的研究突颊,論述鲁豪,建議,總結(jié)律秃。很顯然這些都是不同部分爬橡,各個(gè)部分不相關(guān)聯(lián),但是總結(jié)起來(lái)就是你整個(gè)文章棒动,但是論文嘛糙申,總是改了又該,很煩人迁客,因?yàn)闀?huì)生成很多的文件郭宝。所以git可以幫你把不同的部分合并在一起但是不會(huì)生成任何多余的文件辞槐。你可以遷出到任何你提交后的狀態(tài)。
其次就是軟件開(kāi)發(fā)粘室,比如開(kāi)發(fā)網(wǎng)頁(yè)榄檬。有的人做前端,html衔统,css鹿榜,js調(diào)用一把梭,其他人很精通服務(wù)器锦爵,兩者的業(yè)務(wù)分工明確舱殿,所以很適合分工合作,最后把兩者的業(yè)務(wù)關(guān)聯(lián)一下就可以看到網(wǎng)站了险掀。這時(shí)候git也起到了相當(dāng)重要的作用沪袭,因?yàn)槭?strong>分工合作。
Github Desktop
這是Github的官方git軟件樟氢,其實(shí)現(xiàn)在很多IDE都自帶這種版本控制軟件冈绊,學(xué)會(huì)了這個(gè)其他的版本控制軟件上手就很簡(jiǎn)單了,這篇文章我只會(huì)分享自己常用的一些操作埠啃。
界面介紹
如果你打開(kāi)這個(gè)軟件后(下載地址在上方的超鏈接中)死宣,會(huì)發(fā)現(xiàn)應(yīng)該如下所示。 左邊的是可以切換添加進(jìn)來(lái)的倉(cāng)庫(kù)碴开,再也不需要cd來(lái)cd去了毅该,白色框內(nèi)是改變提醒,下面是提交修改潦牛。所以整個(gè)工作流程是有修改直接commit就行了眶掌。
請(qǐng)注意你可以從左下角看到我的頭像這是以為我已經(jīng)安裝了git,這篇文章側(cè)重介紹Github Desktop的使用巴碗,軟件的介紹而不是安裝工具畏线,所以如果你還沒(méi)有安裝git,請(qǐng)移步廖老師的安裝教程
創(chuàng)建一個(gè)本地倉(cāng)庫(kù)
好了現(xiàn)在我們直接在我的github上面克隆一個(gè)倉(cāng)庫(kù)并且在桌面打開(kāi)良价,這個(gè)倉(cāng)庫(kù)已經(jīng)初始化好了,所以不需要任何命令
Github Desktop果然是親兒子蒿叠, 在網(wǎng)站下載會(huì)自動(dòng)導(dǎo)入到Github Desktop中
那如果沒(méi)有自動(dòng)導(dǎo)入怎么辦內(nèi)明垢,假如你的learngit文件夾在桌面上,可以添加本地倉(cāng)庫(kù)市咽,這是一樣的
提交改變
好了咱們已經(jīng)有了本地倉(cāng)庫(kù)了痊银,那么現(xiàn)在當(dāng)然是什么改變都沒(méi)有,也不需要提交什么施绎∷莞铮可以看到我的learngit中有一個(gè)learn2.txt文件贞绳,我們就做一些修改吧!
在其中添加一行l(wèi)earning git is easy.看看有什么變化吧致稀!
看到了吧冈闭,已經(jīng)顯示了我們?cè)诘?,5行新添加了改變(其中第4行為空白行), 那現(xiàn)在就可以在summary寫(xiě)上簡(jiǎn)短的改變描述抖单,比如我寫(xiě)的是add learn git is easy之后點(diǎn)擊commit to master就可以了萎攒。
看到了吧,現(xiàn)在顯示本地沒(méi)有改變矛绘,但是上面push origin顯示了1耍休,代表的是我們與遠(yuǎn)程的github不同步,本地有一個(gè)更新货矮,就是我們新加的2行羊精,但是github并沒(méi)有更新,推送遠(yuǎn)程分支我之后會(huì)講囚玫。
推送到遠(yuǎn)程倉(cāng)庫(kù)
平常我們都會(huì)看到的別人github上面優(yōu)秀的項(xiàng)目喧锦,github是一個(gè)遠(yuǎn)程倉(cāng)庫(kù),你可以把它當(dāng)作展示用的劫灶,或者別人可以克隆你的倉(cāng)庫(kù)裸违。所以如果你想看到自己本地倉(cāng)庫(kù)在github上面展示出來(lái)每次就得push出來(lái),就像是我們上面commit后本地比遠(yuǎn)程多了一次更新本昏,需要更新遠(yuǎn)程倉(cāng)庫(kù)push本地修改供汛。
首先你得有自己的github賬號(hào),這是為了我們的遠(yuǎn)程推送到github上的
在自己的github desktop登陸自己的github賬號(hào)密碼
登陸后就可以推送啦涌穆, 點(diǎn)擊push origin就可以啦~ 你可以登陸github查看learngit倉(cāng)庫(kù)怔昨,看看其中的變化
是不是和我們?cè)趃ithub desktop里看到的一樣呢? :>
更新本地倉(cāng)庫(kù)
比如說(shuō)現(xiàn)在遠(yuǎn)程倉(cāng)庫(kù)已經(jīng)被更新了宿稀,有可能是你的同事提交了他的一部分趁舀,但是在你的本地倉(cāng)庫(kù)并沒(méi)有更新,現(xiàn)在怎么辦呢祝沸? 很簡(jiǎn)單矮烹,一鍵fetch
這時(shí)候點(diǎn)擊fetch,可以看到下面的pull origin
好啦~點(diǎn)擊pull origin就可以把遠(yuǎn)程的difficult更新到本地了~ 看看里面的history就知道干了些什么了罩锐。
版本回退
有很多時(shí)候我們?cè)诋?dāng)前這一步驟做了一些不可挽回的錯(cuò)誤奉狈,比如說(shuō)刪除了重要的文件以后再也找不到了,這時(shí)候使用版本回退可以回退到任何一個(gè)commit過(guò)的狀態(tài)涩惑。 現(xiàn)在看看咱們的文件夾都有哪些文件仁期?
比如說(shuō)我們不小心刪除了learn2.txt,這個(gè)文件非常重要,怎么樣回復(fù)到之前存在的狀態(tài)呢跛蛋?
打開(kāi)history你會(huì)發(fā)現(xiàn)有很多commit后的歷史記錄,其中有我們之前的update learn2.txt熬的。所以右鍵它會(huì)顯示revet this commit
好了,現(xiàn)在看看你的文件夾吧 :> 是不是回來(lái)了呢赊级?
創(chuàng)建分支
什么是分支呢押框?就像本篇文章剛開(kāi)始提到的分支是用來(lái)創(chuàng)建新功能但是你又不希望破話現(xiàn)在的成果,害怕會(huì)對(duì)現(xiàn)在的進(jìn)度造成影響此衅,所以是一種試驗(yàn)性的功能强戴。 那怎么創(chuàng)建呢? 這也是很簡(jiǎn)單的挡鞍,打開(kāi)首頁(yè)的current branch會(huì)看到default branch是master骑歹,這是所有g(shù)it倉(cāng)庫(kù)的默認(rèn)主分支,都叫master墨微,origin是你github的分支道媚,關(guān)聯(lián)的是服務(wù)器端。
我們嘗試創(chuàng)建一個(gè)新的分支翘县,點(diǎn)擊new最域,創(chuàng)建一個(gè)名為create_learn3的分支
如果你現(xiàn)在仔細(xì)觀察的話會(huì)發(fā)現(xiàn)原來(lái)的master分支變成了create_learn3,這說(shuō)明我們當(dāng)前處于create_learn3的分支里
點(diǎn)擊create Branch就可以了,當(dāng)然了我們會(huì)在這個(gè)分支里創(chuàng)建一個(gè)learn3.txt的文件夾
好了你看到我創(chuàng)建了一個(gè)learn3的文件锈麸,接下來(lái)就是提交我們的改變镀脂,讓git記住當(dāng)前分支的狀態(tài)
現(xiàn)在如果我們切換回master分支
然后查看文件夾,你會(huì)發(fā)現(xiàn)神奇的事??
竟然沒(méi)有我們剛剛創(chuàng)建的create_learn3.txt忘伞,這是因?yàn)槲覀冊(cè)赾reate_learn3分支里提交了改變薄翅,現(xiàn)在比master分支早一個(gè)commit. 你現(xiàn)在知道分支的作用了吧!它不會(huì)改變我們主分支氓奈,如果你在其他分支創(chuàng)建commit翘魄,它只會(huì)改變其他分支的狀態(tài),而對(duì)于master狀態(tài)不會(huì)做出任何改變舀奶!
合并分支
現(xiàn)在你也許想創(chuàng)建learn3.txt是一個(gè)不錯(cuò)的試驗(yàn)暑竟,我想把它合并到我原來(lái)的master分支,那怎么做呢育勺? 首先打開(kāi)branch選項(xiàng)
點(diǎn)擊其中的merge into curren branch(當(dāng)前處于master分支,永遠(yuǎn)都是把其他分支merge到當(dāng)前但荤!) ,然后選擇一個(gè)分支涧至,就是我們的create_learn3
點(diǎn)擊merge into master纱兑,你會(huì)發(fā)現(xiàn)多了一個(gè)commit,他是從我們create_learn3分支繼承過(guò)來(lái)的
最后再看看我們的文件夾
真的多了learn3.txt呢化借!
End
好了最基本的git操作我已經(jīng)演示完了,真的沒(méi)有用到一個(gè)命令捡多,不知道你是否學(xué)會(huì)了這個(gè)得心應(yīng)手可以省時(shí)省力的工具呢???