前言
在剛剛瞭解Git時,懷著一顆浮躁的心,需要使用時,趕緊去查一下他的指令.用完之後就把他丟在一邊.從來沒有靜下心來好好去了解這樣一個程式猿們的必備工具. 所以儘管用了多次,但在我狹隘的視野中卻認為他只是一個代替U盤儲存在雲端,可以向世人炫耀的程式碼倉庫.勝者先勝而後求戰,敗者先戰而後求勝.下層基礎決定上層建築要,想用好像這樣一個工具,只有先去了解他的功能,再去一步步學習,實踐從而掌握它.所以特地些這樣一篇文章來讓還不太瞭解git的小夥伴快速入門Git分散式版本控制系統.
什麼是git?
Git是一款免費、開源的分散式版本控制系統,用於敏捷高效地處理任何或小或大的專案。好吧,什麼是分散式版本控制系統?
如果你用Microsoft Word寫過長篇大論,那你一定有這樣的經歷:
想刪除一個段落,又怕將來想恢復找不回來怎麼辦?有辦法,先把當前檔案“另存為……”一個新的Word檔案,再接著改,改到一定程度,再“另存為……”一個新檔案,這樣一直改下去,最後你的Word文件變成了這樣:
過了一週,你想找回被刪除的文字,但是已經記不清刪除前儲存在哪個檔案裡了,只好一個一個檔案去找,真麻煩。
看著一堆亂七八糟的檔案,想保留最新的一個,然後把其他的刪掉,又怕哪天會用上,還不敢刪,真鬱悶。 更要命的是,有些部分需要你的財務同事幫助填寫,於是你把檔案Copy到U盤裡給她(也可能通過Email傳送一份給她),然後,你繼續修改Word檔案。一天後,同事再把Word檔案傳給你,此時,你必須想想,發給她之後到你收到她的檔案期間,你作了哪些改動,得把你的改動和她的部分合並,真困難。
於是你想,如果有一個軟體,不但能自動幫我記錄每次檔案的改動,還可以讓同事協作編輯,這樣就不用自己管理一堆類似的檔案了,也不需要把檔案傳來傳去。如果想檢視某次改動,只需要在軟體裡瞄一眼就可以,豈不是很方便? 這個軟體用起來就應該像這個樣子,能記錄每次檔案的改動:
版本 | 使用者 | 說明 | 時間 |
---|---|---|---|
1 | richard | 改了一個錯別字? | 2017/10/22 20:31 |
2 | 涼風羽 | 插入一段心理描寫 | 2017/9/15 13:00 |
3 | jungkkki | 稽核了一下格式 | 2017/9/1 9:00 |
4 | sandra | 模板頁建立 | 2017/8/30 9:00 |
git和github之間有什麼關係?
剛入門的時候,git和github總是傻傻分不清,總以為有什麼千絲萬縷的不正當關係.相信很多剛入門的小夥伴也會有同樣的疑惑.所以在此我要解開它們之間的羈絆. git是一個版本控制工具
github是全球最大的同性交友平臺(純屬TX...Github是用Git做版本控制程式碼託管平臺,就好像魔獸爭霸於對戰平臺之間的關係)
Git工作原理圖
我們從右往左說起,從本地到程說起:
- workspce 本地工作區
執行git add [file1] [file2] [file3]
新增工作區內的置頂檔案到index暫存區
執行git add .
新增所有檔案到暫存區.此功在暫存區記憶體儲當前版本,以前後期無線Ctrl Z撤回到需要的理想狀態.當一部分程式碼塊結束時,可以先將其暫存,了卻後顧之憂.
執行git pull
將remote遠端倉庫的資料拉到當前分支合併
執行git checkout [branch-name]
切換當前分支. - index 暫存區
執行git commit -m '提交說明'
將暫存區的改動提交到當前分支的倉庫區 - repository 倉庫區
版本庫或者是倉庫 ,其實啊說白了就是一個目錄而且,這個目錄中的所以檔案都被git管理而且,不管你做什麼操作都會被記錄,包括:增加、刪除、修改檔案等,都會被記錄下來,以便後來跟蹤與修改相關記錄,甚至被還原。
執行git push origin master
將倉庫區的改動提交到remote 遠端倉庫
執行git clone
- remote 遠端倉庫
常見的遠端倉庫(同性交友平臺)有github,碼雲等.
以上用幾個常用指令配合圖示建議描述命令和倉庫之間的關係原理
git 模組示意
模組名 | 示意 |
---|---|
respository(版本庫) | 一個倉庫包括了所有的版本資訊、所有的分支和標記資訊。在Git中倉庫的每份拷貝都是完整的。倉庫讓你可以從中取得你的工作副本。 |
branch(分支) | 一個分支意味著一個獨立的、擁有自己歷史資訊的程式碼線(code line)。你可以從已有的程式碼中生成一個新的分支,這個分支與剩餘的分支完全獨立。預設的分支往往是叫master。使用者可以選擇一個分支,選擇一個分支執行命令git checkout branch |
標記(Tags) | 一個標記指的是某個分支某個特定時間點的狀態。通過標記,可以很方便的切換到標記時的狀態。 |
提交(Commit) | commit之後,版本庫會建立一個新的版本。後續可以重新獲得這個版本. |
結言
今天就先寫到這裡,希望能讓沒有接觸過Git的朋友能對這個很棒的版本管理工具有一個初步的認識。紙上得來終覺淺,絕知此事要躬行。這篇文章並沒有實戰演示,而是讓大家有一個初步的認識。下篇文章將會是例項演示,由建立版本庫開始帶大家一起做上Git時光穿梭,希望能夠對大家有所幫助。
感謝掘金這個平臺,充分展示了網際網路的共享精神。鞏固自己知識的同時又能將之共享,閱讀完本篇文章後認為有所幫助的希望可以隨手關注一下,給作者能量能握緊手中的筆。有需要改進的地方也請大家指出,和大家一起共同進步.
git指令終究是熟能生巧,送大家Git葵花寶典圖譜
參考
喜歡的朋友可以關注,下篇文章將會是例項演示,由建立版本庫開始帶大家一起做上Git時光穿梭。