苦惱
你有沒有為了學(xué)git的經(jīng)歷一而再再而三查看別人的文檔還是學(xué)不會的經(jīng)歷,只是它、因?yàn)槟銢]有使用git的需要,更何況繁瑣的命令行讓人頭疼,什么緩存區(qū),分支,HEAD,合并分支這些讓人頭疼的東西敬而遠(yuǎn)之,有一款github官方的應(yīng)用程序就是為了小白而生的,這篇教程里不會介紹任何一個(gè)命令但是看完之后你能輕松使用git。
git介紹
什么是git?間接的說git是分布式版本控制工具,這你或許看過很多遍了,但是我還是想在這里重復(fù)一遍,git可以在一下情境中很有用:
你在寫一篇很長的論文,比如說論文的開頭介紹, 相關(guān)的研究,論述,建議,總結(jié)。很顯然這些都是不同部分,各個(gè)部分不相關(guān)聯(lián),但是總結(jié)起來就是你整個(gè)文章,但是論文嘛,總是改了又該,很煩人,因?yàn)闀珊芏嗟奈募K詆it可以幫你把不同的部分合并在一起但是不會生成任何多余的文件。你可以遷出到任何你提交后的狀態(tài)。
其次就是軟件開發(fā),比如開發(fā)網(wǎng)頁。有的人做前端,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é)會了這個(gè)其他的版本控制軟件上手就很簡單了,這篇文章我只會分享自己常用的一些操作。
界面介紹
如果你打開這個(gè)軟件后(下載地址在上方的超鏈接中),會發(fā)現(xiàn)應(yīng)該如下所示。 左邊的是可以切換添加進(jìn)來的倉庫,再也不需要cd來cd去了,白色框內(nèi)是改變提醒,下面是提交修改。所以整個(gè)工作流程是有修改直接commit就行了。
請注意你可以從左下角看到我的頭像這是以為我已經(jīng)安裝了git,這篇文章側(cè)重介紹Github Desktop的使用,軟件的介紹而不是安裝工具,所以如果你還沒有安裝git,請移步廖老師的安裝教程
創(chuàng)建一個(gè)本地倉庫
好了現(xiàn)在我們直接在我的github上面克隆一個(gè)倉庫并且在桌面打開,這個(gè)倉庫已經(jīng)初始化好了,所以不需要任何命令
Github Desktop果然是親兒子, 在網(wǎng)站下載會自動(dòng)導(dǎo)入到Github Desktop中
那如果沒有自動(dòng)導(dǎo)入怎么辦內(nèi),假如你的learngit文件夾在桌面上,可以添加本地倉庫,這是一樣的
提交改變
好了咱們已經(jīng)有了本地倉庫了,那么現(xiàn)在當(dāng)然是什么改變都沒有,也不需要提交什么。可以看到我的learngit中有一個(gè)learn2.txt文件,我們就做一些修改吧!
在其中添加一行l(wèi)earning git is easy.看看有什么變化吧!
看到了吧,已經(jīng)顯示了我們在第4,5行新添加了改變(其中第4行為空白行), 那現(xiàn)在就可以在summary寫上簡短的改變描述,比如我寫的是add learn git is easy之后點(diǎn)擊commit to master就可以了。
看到了吧,現(xiàn)在顯示本地沒有改變,但是上面push origin顯示了1,代表的是我們與遠(yuǎn)程的github不同步,本地有一個(gè)更新,就是我們新加的2行,但是github并沒有更新,推送遠(yuǎn)程分支我之后會講。
推送到遠(yuǎn)程倉庫
平常我們都會看到的別人github上面優(yōu)秀的項(xiàng)目,github是一個(gè)遠(yuǎn)程倉庫,你可以把它當(dāng)作展示用的,或者別人可以克隆你的倉庫。所以如果你想看到自己本地倉庫在github上面展示出來每次就得push出來,就像是我們上面commit后本地比遠(yuǎn)程多了一次更新,需要更新遠(yuǎn)程倉庫push本地修改。
首先你得有自己的github賬號,這是為了我們的遠(yuǎn)程推送到github上的
在自己的github desktop登陸自己的github賬號密碼
登陸后就可以推送啦, 點(diǎn)擊push origin就可以啦~ 你可以登陸github查看learngit倉庫,看看其中的變化
是不是和我們在github desktop里看到的一樣呢? :>
更新本地倉庫
比如說現(xiàn)在遠(yuǎn)程倉庫已經(jīng)被更新了,有可能是你的同事提交了他的一部分,但是在你的本地倉庫并沒有更新,現(xiàn)在怎么辦呢? 很簡單,一鍵fetch
這時(shí)候點(diǎn)擊fetch,可以看到下面的pull origin
好啦~點(diǎn)擊pull origin就可以把遠(yuǎn)程的difficult更新到本地了~ 看看里面的history就知道干了些什么了。
版本回退
有很多時(shí)候我們在當(dāng)前這一步驟做了一些不可挽回的錯(cuò)誤,比如說刪除了重要的文件以后再也找不到了,這時(shí)候使用版本回退可以回退到任何一個(gè)commit過的狀態(tài)。 現(xiàn)在看看咱們的文件夾都有哪些文件?
比如說我們不小心刪除了learn2.txt,這個(gè)文件非常重要,怎么樣回復(fù)到之前存在的狀態(tài)呢?
打開history你會發(fā)現(xiàn)有很多commit后的歷史記錄,其中有我們之前的update learn2.txt。所以右鍵它會顯示revet this commit
好了,現(xiàn)在看看你的文件夾吧 :> 是不是回來了呢?
創(chuàng)建分支
什么是分支呢?就像本篇文章剛開始提到的分支是用來創(chuàng)建新功能但是你又不希望破話現(xiàn)在的成果,害怕會對現(xiàn)在的進(jìn)度造成影響,所以是一種試驗(yàn)性的功能。 那怎么創(chuàng)建呢? 這也是很簡單的,打開首頁的current branch會看到default branch是master,這是所有g(shù)it倉庫的默認(rèn)主分支,都叫master,origin是你github的分支,關(guān)聯(lián)的是服務(wù)器端。
我們嘗試創(chuàng)建一個(gè)新的分支,點(diǎn)擊new,創(chuàng)建一個(gè)名為create_learn3的分支
如果你現(xiàn)在仔細(xì)觀察的話會發(fā)現(xiàn)原來的master分支變成了create_learn3,這說明我們當(dāng)前處于create_learn3的分支里
點(diǎn)擊create Branch就可以了,當(dāng)然了我們會在這個(gè)分支里創(chuàng)建一個(gè)learn3.txt的文件夾
好了你看到我創(chuàng)建了一個(gè)learn3的文件,接下來就是提交我們的改變,讓git記住當(dāng)前分支的狀態(tài)
現(xiàn)在如果我們切換回master分支
然后查看文件夾,你會發(fā)現(xiàn)神奇的事??
竟然沒有我們剛剛創(chuàng)建的create_learn3.txt,這是因?yàn)槲覀冊赾reate_learn3分支里提交了改變,現(xiàn)在比master分支早一個(gè)commit. 你現(xiàn)在知道分支的作用了吧!它不會改變我們主分支,如果你在其他分支創(chuàng)建commit,它只會改變其他分支的狀態(tài),而對于master狀態(tài)不會做出任何改變!
合并分支
現(xiàn)在你也許想創(chuàng)建learn3.txt是一個(gè)不錯(cuò)的試驗(yàn),我想把它合并到我原來的master分支,那怎么做呢? 首先打開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,你會發(fā)現(xiàn)多了一個(gè)commit,他是從我們create_learn3分支繼承過來的
最后再看看我們的文件夾
真的多了learn3.txt呢!
End
好了最基本的git操作我已經(jīng)演示完了,真的沒有用到一個(gè)命令,不知道你是否學(xué)會了這個(gè)得心應(yīng)手可以省時(shí)省力的工具呢???