Git 與 GitHub


Posted by Bryan9411 on 2020-07-12

什麼是 Git ?

Git 是一套可以自由切換版本與還原回到過去的一套版本控制軟體。例如說今天一個網頁設計師設計版面,第一版主色系是白色,第二版是藍色,但是老闆都覺得不好看,於是又製作了下一版本,主色系變成綠色,老闆看完後又覺得第一版白色比較好看的感覺,在這修修改改過程中,這資料夾可能已經不存在第一版的檔案了,於是 Git 就出現了,它就是專門再幫人控管版本的一套軟體。

Git 基本指令介紹

  • 加入版本控制 git init
    如果要讓 Git 對目錄進行版本控制,輸入 git init ,下好指令後,資料夾會出現一個 .git 的檔案,這是用來控制整個專案的版本,如果不想要被版本控制的話,只需要刪除這支 .git 即可。
  • 查看當前狀態 git status
    加入版本控制後,如果想確認是否真的有加入,或是想確認現在這資料夾裡面有哪些檔案還沒被加入版本控制,可以使用這指令 git status ,這是可以查看當前狀態的指令。

    如果有檔案未被加入版本控制的話,會顯示紅字表示這些檔案雖然在此資料夾中,但還未被加入版本控制內
  • 檔案加入版本控制 git add
    假如你這資料夾底下有很多筆檔案,例如: 檔案1.txt、檔案2.txt、檔案3.txt,而你想把這些檔案給加入版本控制的話,可以使用這指令 git add 檔案1.txt ,而如果你有100筆檔案要加入的話,可以使用 git add . 這指令可以把這資料夾底下所有檔案都加入版本控制。
    再上一步驟查看狀態指令過程中,有張圖片未被加入版本控制,現在就來把這張圖給加入,加入成功後,再用 git status 看狀態,會跟你說有個新檔案已被加入版本控制。
  • 提交版本 git commit -m '版本內容'
    當檔案都加入版本控制後,提交一個新版本上去,使用 git commit -m '版本內容'

    小技巧:如果已經確定所有檔案都要加入版本控制的話,也可以使用 git commit -am '版本內容' ,可以把 git add .這步驟與 git commit -m '版本內容 ' 合再一起。

  • 查看版本紀錄 git log
    輸入 git log 就可看到以前 commit 上去的版本紀錄,由上往下第一個是最新的提交紀錄。

branch (分支)

在多人協作、或同時要開發不同功能時,可能就會有衝突產生,而 branch 就是為了解決上述問題,它可以讓開發過程各自獨立,像是 修 Bug開發新軟體、...等各自獨立出來變成一條支線。

branch 基本操作

  • 查看目前所在分支 git branch -v
    如果沒新建過 branch ,系統預設是 master
  • 新建 branch git branch - <branh-name>
    透過指令 git branch - <branh-name> 後面加上 branch 名稱,就可以新建一條新的 branch
  • 刪除 branch git branch -d - <branh-name>
    透過指令 git branch -d - <branh-name> 後面加上 branch 名稱,就可以刪除 branch

    刪除後再來用 git branch -v 確認一下是否真的刪除
  • 切換 branch git checkout - <branh-name>
    跟之前提到的 commit 版本切換是相同意思,透過 git checkout - <branh-name> 可以切換到不同分支
    目前所在 master

    透過指令 git checkout - <branh-name> 切換到 new-feature,再透過 git branch -v 查看目前位置

合併分支 git merge

合併分支順序非常重要,要從最大的開始,比如說一個網站,開一條支線,然後開發了購物車功能,現在要合併的話,是要把這個購物車的支線合併到原本的 master ,順序不能相反。
現在有兩條線,一條 master(原本網站) 一條 new-feature(另外開發的購物車功能),現在位置是 master

而現在這購物車功能已經開發完了,我要把它合併到原本的網站上,這時就要透過 gti merge 指令

再來看 log 紀錄就會發現剛剛的 new-feature 已經被合併再同一條線上了

GitHub 相關操作指令

  • 把檔案推上 repository push
    • 把檔案同步上傳到 GitHub 上面
    • git push original - <branh-name>
  • 從 repository 把檔案給拉回本地 pull
    • 從 GitHub 上把檔案拉回本地
    • git pull original <branh-name>
  • 從 repository 把檔案複製一份下載到本地 clone
    • git clone <SSH>
    • 下載下來的檔案沒有權限,無法做任何的修改
  • 複製一份成為自己的 repository
    • 有權限可以修改,也可以 push 回去

#Git #Github







Related Posts

 [day 05] getter & setter: 屬性描述器

[day 05] getter & setter: 屬性描述器

2023ICPC _桃園

2023ICPC _桃園

[BE101]  留言板(中-修正問題篇)

[BE101] 留言板(中-修正問題篇)


Comments