# Git & GitHub 入門 ###### tags: `Git` `GitHub` 教學資源: [Git文件](https://git-scm.com/book/zh-tw/v2) [鐵人賽Git 版本控制](https://ithelp.ithome.com.tw/users/20139195/ironman/4770) [為你自己學 Git](https://gitbook.tw/) [六角學院Git、GitGub](https://youtube.com/playlist?list=PLYrA-SsMvTPOZeB6DHvB0ewl3miMf-2tj) [Git 與 Github 版本控制基本指令與操作入門教學](https://blog.techbridge.cc/2018/01/17/learning-programming-and-coding-with-python-git-and-github-tutorial/) ## :pushpin:什麼是 Git? **git是一個分散式版本控制軟體(Version Control System)**,於2005年釋出。最初目的是為了更好地管理Linux核心開發而設計。但是隨著開發的深入,以及他的許多優點深受人們喜愛,因此越來越多的專案採用git來管理開發。 :::info - Git 是一個版本控制軟體,藉由它產生一個**儲存庫( git Repository)** - GitHub 支援 git 程式碼存取和**遠端托管儲存庫**的平台服務,GitHub 的本體是一個 Git 伺服器 ::: ### 版本控制 Git在檔案新增、修改、刪除時的每個動作都可以稱為一個「版本」,而Git版本控制則是,幫你追蹤檔案所有的狀態變化。 以下為不同的版本控制: 1. 本地端版本控制 - RCS通過套用任意的補丁,重新產生出每個版本的檔案內容。 2. 集中化版本控制系統 - 有一個伺服器來管理所有版本的檔案,而許多用戶端會連到這台伺服器取出檔案來使用 ex:CVS、Subversion、Perforce。 3. 分散式版本控制系統 - 用戶端不但可以取出最新的檔案資訊,還可以將整個檔案夾備份,假如有任何一個伺服器損壞,就可以採用用戶端的資料來進行還原。 ### 為什麼需要Git? 我們經常會面臨檔案新增、修改、刪除的狀況,有時在複製檔案到其他資料夾時會不小心覆蓋檔案前一個的檔案,此時就可以使用**Git回溯資料,找到過去版本的資料(就像時光機一樣!)**。 ### Git優點 - 開源免費軟體 - 分散式的版本控制系統 用戶對伺服器的依賴性降低。 - 速度快、體積小 Git 採用快照方式取代複製貼上,建立和切換分支速度非常快。 - 功能強大 Git 最為出色的是它的合併追蹤(merge tracing)的能力。 ### 終端機模式指令 在學習、使用 Git 的時候,會有很多機會需要在終端機(Terminal)模式下輸入指令,例如: ``` $ git --version git version 2.21.0 ``` 在最前面的 $ 符號是系統提示字元,用於告訴大家==這是一個需要在終端機環境下手動輸入的指令==,而下一行則是指令執行的結果。**使用者在實際輸入指令時若輸入 $ 則會出現 command not found 的錯誤訊息**。 ## :pushpin:安裝 [Windows安裝傳送門](https://git-scm.com/download/win) [mac安裝教學](https://gitbook.tw/chapters/environment/install-git-in-windows) 安裝後輸入指令驗證安裝&版本資訊  ### 測試安裝是否成功 ``` $ which git /mingw64/bin/git $ git --version git version 2.21.0.windows.1 ``` ### 終端機 * Win:Git Bash * 開始 > 搜尋輸入Git Bash * Mac:終端機 * 輸入「control + 空白」,關鍵字輸入「終端機」 ### 個人資料設定 * 輸入姓名 `$git config --global user.name "輸入名字"` * 輸入個人的 email `$git config --global user.email "輸入信箱"` * 查詢 git 設定內容 `$git config --list` ## :pushpin:終端機指令學習 |Windows|MacOS & Linux|說明| |-|-|:-| |==cd [路徑]==|==cd [路徑]==|前往資料夾路徑(拖拉資料夾至終端機介面)| |cd|pwd|取得目前所在的位置| |dir|ls|顯示資料夾裡的檔案| |mkdir|mkdir|新增資料夾| |無指令|touch|開新檔案| |copy|cp|複製檔案| |move|mv|移動檔案| |del|rm|刪除檔案| |cls|clear|清除畫面上的內容| ## :pushpin:Git常用指令  |指令|說明| |-|:-| |==`$git init`==|初始化數據庫,新增本地數據庫 | |`ls -a` |顯示所有檔案含隱藏檔| |`$git status`|查詢當前狀態 **要將檔案加入到指定資料夾**| |==`$git add.`==|將所有檔案加入到索引| |`git add ____`|將單一檔案加入到索引| |==`$git commit -m"新增網頁環境"`==|將索引檔案變成一個更新(commit)| |`$git log`|觀察 commit 歷史紀錄| |`$git clone數據庫網址`|下載遠端數據庫| |`$git push origin master`|更新遠端數據庫| |`$ git add -p index.html`|commit部分內容|   >若在輸入 git init 出現 'git' 不是內部或外部命令、可執行的程式或批次檔。 這個錯誤指令的話 只要打開 環境變數 -> 系統變數,點擊變數 Path,新增以下兩個檔案路徑即可  ## :pushpin:新增遠端數據庫repo GitGub上傳 1. 新建好 GitHub 的 Repository 2. `git remote add origin <your url>` *輸入一次即可 3. `git branch -M main` *分支 4. `git push -u origin main` *push到雲端數據庫 5. 往後檔案修改輸入 * 從新增好的遠端數據庫整合  * 從本地新增到遠端數據庫 
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.