蔡哥是個立志要成為笑話王的男人,所以他對研究就如何說笑話非常認真。每一版本的笑話除了文字講稿檔,還附有搭配動作語氣規畫的檔案、錄音檔、試講影片和紀錄聽者反應的的心得...。 只要他改了上述任何一個檔案,就要複製全部的檔案到新的資料夾,造成他的電腦硬碟很快就被複製的資料夾塞爆了。而且想要確定某兩版的笑話有甚麼不一樣時,要打開兩版的全部檔案,一一用眼睛尋找當初到底是改了哪裡,他覺得這實在是太沒效率的動作了,所以想要學會 Git ,增快他進化笑話的速度。
有時蔡哥只是修改搭配動作的檔案,就要新增一個資料夾複製全部的檔案,造成使用的空間變兩倍,如果蔡哥是使用 Git 就能節省使用空間。雖然 Git 在建立新版本(Commit)時的概念也像是建立一個新的資料夾放原本所有存在的檔案,,但如果是沒有修改過的檔案不會再建立一個,而是直接連結到原本的檔案,不會多使用電腦的存儲空間。
我們不一樣 每個人都有不同的境遇 我們在這裡 在這裡等你 我們不一樣 雖然會經歷不同的事情 我們都希望 來生還能相遇 --大壯(DZ) - 我們不一樣
####每個笑話都有不同的境遇,但是蔡哥要如何快速了解是哪裡不一樣呢?
使用 Git commit 後建立的笑話新版本,雖然檔名和資料夾名稱從 GUI 開來看都沒有改變,長的都一樣。但是在 Commit 時會強制作者要留下訊息告知為甚麼要增加這個版本,訊息可以留類似蔡哥原本會創的資料夾名稱 笑話終終終極版_改形容詞,只要看當初 Commit 留下的訊息,就大概可以知道改了甚麼。另外,如果要確定細節改了甚麼,可以用指令進行差異比較 git diff
或直接在 GitHub 上查看,會直接標示出修改過的地方,刪除或新增過甚麼。
蔡哥看完所有笑話進化版的差異後,覺得每一個笑點都不能捨棄,不想讓它們來生才能相遇,所以想要成立一個真的最終使用版,集合所有笑點在一個笑話內。使用 Git 的 merge
能快速創立出一個最終使用版本,如果笑點有衝突的地方 Git 會幫忙標示出來,要求蔡哥修改完才能真的合併。
-
打開 CLI
-
cd ~/desktop
:進去想放笑話資料夾的頁面,假設是桌面 -
mkdir joke
: 創立名為 joke 的資料夾 -
cd joke
: 進入到 joke 資料夾內 -
git init
: 把 joke 資料夾加入版本控制 -
git status
orgst
: 查看資料夾內檔案的狀況用 GUI 進入資料夾內,修改或新增檔案。
-
touch .gitignore
: 創立 txt 格式的文件,名為 -
vim .gitignore
: 使用 vim editor 在.gitignore
輸入不想加入版本控制檔案的名稱 -
git add .
: 除了.gitignore
內提到的,將所有檔案加入版本控制到 Staging Area (暫存區域) -
git commit -am "message"
: 添加 Commit 將檔案永久存儲到 Repository -
git log
orgit log --oneline
: 查看存儲過哪些版本,和其詳細資訊 ex: 版本 ID、作者、存儲時間和留下的 Commit 訊息
git branch newjoke
: 建立名為 newjoke 的分支git checkout newjoke
: 將指標轉換到 newjoke 分支後,才能修改新版本檔案。
用 GUI 進入資料夾內,修改或新增檔案。
git checkout master
: 轉換指標回 mastergit merge newjoke
: 合併 newjoke 分支到 master 中- 有衝突的話 : 會提示衝突的檔案,進入該檔案修改完後,依指示輸入
git commit -am "message
,才真正完成合併
- 有衝突的話 : 會提示衝突的檔案,進入該檔案修改完後,依指示輸入
git branch -d newjoke
: 確定沒問題後,刪除 newjoke 分支
- 參考資料