苦惱
你有沒有為了學git的經歷一而再再而三查看別人的文檔還是學不會的經歷,只是它、因為你沒有使用git的需要,更何況繁瑣的命令行讓人頭疼,什么緩存區,分支,HEAD,合並分支這些讓人頭疼的東西敬而遠之,有一款github官方的應用程序就是為了小白而生的,這篇教程里不會介紹任何一個命令但是看完之后你能輕松使用git。
git介紹
什么是git?間接的說git是分布式版本控制工具,這你或許看過很多遍了,但是我還是想在這里重復一遍,git可以在一下情境中很有用:
- 你在寫一篇很長的論文,比如說論文的開頭介紹, 相關的研究,論述,建議,總結。很顯然這些都是不同部分,各個部分不相關聯,但是總結起來就是你整個文章,但是論文嘛,總是改了又該,很煩人,因為會生成很多的文件。所以git可以幫你把不同的部分合並在一起但是不會生成任何多余的文件。你可以遷出到任何你提交后的狀態。
- 其次就是軟件開發,比如開發網頁。有的人做前端,html,css,js調用一把梭,其他人很精通服務器,兩者的業務分工明確,所以很適合分工合作,最后把兩者的業務關聯一下就可以看到網站了。這時候git也起到了相當重要的作用,因為是分工合作。
Github Desktop
這是Github的官方git軟件,其實現在很多IDE都自帶這種版本控制軟件,學會了這個其他的版本控制軟件上手就很簡單了,這篇文章我只會分享自己常用的一些操作。
界面介紹
如果你打開這個軟件后(下載地址在上方的超鏈接中),會發現應該如下所示。 左邊的是可以切換添加進來的倉庫,再也不需要cd來cd去了,白色框內是改變提醒,下面是提交修改。所以整個工作流程是有修改直接commit就行了。
請注意你可以從左下角看到我的頭像這是以為我已經安裝了git,這篇文章側重介紹Github Desktop的使用,軟件的介紹而不是安裝工具,所以如果你還沒有安裝git,請移步廖老師的安裝教程
創建一個本地倉庫
好了現在我們直接在我的github上面克隆一個倉庫並且在桌面打開,這個倉庫已經初始化好了,所以不需要任何命令
Github Desktop果然是親兒子, 在網站下載會自動導入到Github Desktop中
那如果沒有自動導入怎么辦內,假如你的learngit文件夾在桌面上,可以添加本地倉庫,這是一樣的
提交改變
好了咱們已經有了本地倉庫了,那么現在當然是什么改變都沒有,也不需要提交什么。可以看到我的learngit中有一個learn2.txt文件,我們就做一些修改吧!
在其中添加一行learning git is easy.看看有什么變化吧!
看到了吧,已經顯示了我們在第4,5行新添加了改變(其中第4行為空白行), 那現在就可以在summary寫上簡短的改變描述,比如我寫的是add learn git is easy之后點擊commit to master就可以了。
看到了吧,現在顯示本地沒有改變,但是上面push origin顯示了1,代表的是我們與遠程的github不同步,本地有一個更新,就是我們新加的2行,但是github並沒有更新,推送遠程分支我之后會講。
推送到遠程倉庫
平常我們都會看到的別人github上面優秀的項目,github是一個遠程倉庫,你可以把它當作展示用的,或者別人可以克隆你的倉庫。所以如果你想看到自己本地倉庫在github上面展示出來每次就得push出來,就像是我們上面commit后本地比遠程多了一次更新,需要更新遠程倉庫push本地修改。
- 首先你得有自己的github賬號,這是為了我們的遠程推送到github上的
- 在自己的github desktop登陸自己的github賬號密碼
登陸后就可以推送啦, 點擊push origin就可以啦~ 你可以登陸github查看learngit倉庫,看看其中的變化
是不是和我們在github desktop里看到的一樣呢? :>
更新本地倉庫
比如說現在遠程倉庫已經被更新了,有可能是你的同事提交了他的一部分,但是在你的本地倉庫並沒有更新,現在怎么辦呢? 很簡單,一鍵fetch
把easy改成了difficult
這時候點擊fetch,可以看到下面的pull origin
好啦~點擊pull origin就可以把遠程的difficult更新到本地了~ 看看里面的history就知道干了些什么了。
版本回退
有很多時候我們在當前這一步驟做了一些不可挽回的錯誤,比如說刪除了重要的文件以后再也找不到了,這時候使用版本回退可以回退到任何一個commit過的狀態。 現在看看咱們的文件夾都有哪些文件?
比如說我們不小心刪除了learn2.txt,這個文件非常重要,怎么樣回復到之前存在的狀態呢?
learn2.txt被刪除后的changes
打開history你會發現有很多commit后的歷史記錄,其中有我們之前的update learn2.txt。所以右鍵它會顯示revet this commit
好了,現在看看你的文件夾吧 :> 是不是回來了呢?
創建分支
什么是分支呢?就像本篇文章剛開始提到的分支是用來創建新功能但是你又不希望破話現在的成果,害怕會對現在的進度造成影響,所以是一種試驗性的功能。 那怎么創建呢? 這也是很簡單的,打開首頁的current branch會看到default branch是master,這是所有git倉庫的默認主分支,都叫master,origin是你github的分支,關聯的是服務器端。
我們嘗試創建一個新的分支,點擊new,創建一個名為create_learn3的分支
如果你現在仔細觀察的話會發現原來的master分支變成了create_learn3,這說明我們當前處於create_learn3的分支里
點擊create Branch就可以了,當然了我們會在這個分支里創建一個learn3.txt的文件夾
好了你看到我創建了一個learn3的文件,接下來就是提交我們的改變,讓git記住當前分支的狀態
提交learn3.txt
現在如果我們切換回master分支
切換回master分支
然后查看文件夾,你會發現神奇的事😮
竟然沒有我們剛剛創建的create_learn3.txt,這是因為我們在create_learn3分支里提交了改變,現在比master分支早一個commit. 你現在知道分支的作用了吧!它不會改變我們主分支,如果你在其他分支創建commit,它只會改變其他分支的狀態,而對於master狀態不會做出任何改變!
合並分支
現在你也許想創建learn3.txt是一個不錯的試驗,我想把它合並到我原來的master分支,那怎么做呢? 首先打開branch選項
點擊其中的merge into curren branch(當前處於master分支,永遠都是把其他分支merge到當前!) ,然后選擇一個分支,就是我們的create_learn3
點擊merge into master,你會發現多了一個commit,他是從我們create_learn3分支繼承過來的
最后再看看我們的文件夾
真的多了learn3.txt呢!
End
好了最基本的git操作我已經演示完了,真的沒有用到一個命令,不知道你是否學會了這個得心應手可以省時省力的工具呢?🤪
作者:Pan231
鏈接:https://www.jianshu.com/p/06a960d991aa
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯系作者獲得授權並注明出處。