一、了解VCS
VCS,全名"Version Control System",又稱"版本控制系統"或"版本控制",是可以控制一個專案在各個版本上修改的內容,可以快速的返回先前內容的系統。
VCS的介紹可以看看GeeksforGeeks的這篇文章(英文)
而git就是使用此系統的一套軟體。
二、git是什麼
git 也就是VCS的軟體,可以簡單使用幾行指令完成VCS需要處理的事情,也是各大使用VCS的伺服器所常用的軟體。
詳細簡介可以參考連猴子都能懂的Git入門指南
三、git中一定要會的指令
在介紹指令之前請注意,雖然很多商業軟體,甚至也有開源軟體都支援VCS,但最好先學會使用指令。
在使用git指令前,請先了解自己作業系統的終端機(Commander,Terminal)要如何使用,這裡不會對此說明。
1. 從git伺服器上複製儲存庫到這裡
2. 增加修改內容或檔案git clone <git url>會將該儲存庫的內容複製到當前位置的<repository>資料夾中,所以不用擔心會突然跑出一堆東西在不該在的地方
3. 為增加的內容或檔案給予說明,並處理其內容git add <file path>git會自動處理該檔案的修改內容,這裡的增加只是告訴git等一下要處理這個檔案,並不是立刻就丟到git上
git commit -m <說明>這裡就會確定2.所添加的檔案,<說明>內有空格請使用"包起來
4. 察看當前git的狀態(被修改的內容及檔案在git裡的狀態)
git status
5. 將修改提交到git伺服器上就是察看狀態,沒什麼好說的
6. 將在其他地方所提交到git伺服器上的修改覆蓋至本地庫git push origin master如果想要簡寫為"git push",必須至少先打一次"git push --set-upstream origin master"
7. 將當前的資料夾設為git本地庫git pull這會把你這裡的修改內容到git伺服器所記載的修改內容做合併,不用擔心檔案會被覆蓋掉,就當作是他幫你把修改的內容自動幫你插入檔案中
8. 將本地庫新增git伺服器地址git init 或 git init -b <name>後者可以自己設定本地庫的名字,預設名字為"master"
git remote add <7.名字> <git url>git remote -v依序輸入上面兩個指令即可將本地庫加入連接的地址
四、稍微進階,但很重要的內容
如果你要輕鬆方便且長期使用git的話,可以看看這裡的內容
1. 快速新增大量檔案
如果要使用"git add <file path>"來新增大量檔案,又不希望檔案路徑一個一個打,你可以簡單的將"<file path>"改輸入為"*"他會將全部的檔案加入。也可以簡單的使用過濾器,例如"*.txt"為將所有結尾為".txt"的檔案加入,或是"test*"即為將開頭為"text"的檔案全部加入等等。
2. 自動忽略
3. 並不是所有東西都能不覆蓋檔案,僅插入修改後的內容有些檔案你不希望加入git中,但又因為檔案太多想偷懶用"git add *"來快速加入那你可以在本地庫根目錄下新增".gitignore"的檔案,裡面輸入要忽略的檔案路徑(以行分隔),git將會在加入".gitignore"的檔案時自動將裡面所提供的檔案路徑忽略掉。
4. 新增分支git只能處理文字檔(.txt .java .kt .py 等等),其餘被git所判別為二進位檔案的皆會直接覆蓋檔案,像是PDF(.pdf)或是各式圖片檔(.jpg .png .gif 等等),所以不要傻傻的把文字檔包成壓縮檔再丟,那只會造成更多的問題而已。
5. 在特定版本新增分支如果你想從當前狀態再多做一個不同的版本的話,可以建立新的分支,使用"git branch <name>",可以新增一個分支,而進入該分支的方法就是使用"git checkout <name>"來切換。當你不需要這個分支且要刪除時,使用"git branch -d <name>"就可以刪除"<name>"這個分支喔。
使用"git branch <name>"可以新增分支,但如果我想從某個commit點新增分支的話呢?跟切換分支一樣,使用"git checkout <commit code>",來切換到該commit點,"<commit code>"可以只輸入一部分,但至少6位,"<commit code>"可以使用"git log"印出commit紀錄來確認。切換到該commit點後,就可以像一般新增分支一樣直接輸入"git branch <name>"來新增了。
6. 分支合併
當你想要將某個分支合併到某個分支時(包含master),你可以先切換到要被合併的分支,然後使用"git merge <branch name>"即可將其合併。
7. pull的下位轉換
高階指令"git pull"其實就是將兩個指令結合的版本,事實上,你也可以使用"git fetch"和6.所講到的"git merge"來達到一模一樣的效果。
"git fetch"就是將本地庫與git伺服器之間的所有commit修改加到名為"FETCH_HEAD"(自動創建)的分支裡,既然是分支,當然就可以使用6.所講到的分支合併8. 想到再加...
五、其他
其他更詳細的指令可以使用"git help"來查詢,也可以使用"git help <command>"來開啟該指令的說明文檔
六、參考資料
自己的git使用經驗