--- title: Git基礎知識 tags: Coding365,Git --- # Git 基礎知識 ## Git 版本控制之工作流程 ![reference link](https://miro.medium.com/max/1204/0*6TRmNqGnYSRkI7TR.png) ### Local 本地端 working directory 目錄工作區 staging area 面積暫存區 localrepo 版本儲存區 ### Romate 雲端 remoterepo 雲端儲存區(目前使用的是GitHub) ## 預備知識 * 數據庫 (Repository) * 是記錄檔案或目錄狀態的地方,儲存內容的修改歷史記錄。 * 本地端數據庫(localrepo) * 為了方便用戶個人使用,在自己的機器上配置的數據庫。 * 提交(Commit) --- ## 基礎工作指令 | 指令 | 用途 | |-------- |-------- | |cd 資料夾位置或名稱 |先到要操作的的目錄底下 | |git init 資料夾名稱|選擇檔案資料夾| |git config --global user.name [名稱]|第一次使用設定名稱| |git config --global user.email [信箱]|第一次使用設定信箱| |mkdir 資料夾名稱 |新增資料夾 | |pwd |取得目前所在位置 | |ls |列出此位置底下的檔案列表 | ## Git基礎指令 ### localrepo 本地端數據庫 | 指令 | 用途 | |--------------|--------------| |touch 檔名.副檔名 |新增檔案,可一次新增多個| |rm 檔名.副檔名|刪除檔案| |git reset 檔名|取消標記| |git clone 你要載的檔案的網址|下載GitHub檔案| |git add 檔案|將檔案從工作區(working directory)加到暫存區(staging area)| |git add -A| A是all的意思,就是一次把全部的檔案都放到暫存區| |git status|查詢工作區狀態| |git commit -m "版本註解"|將檔案從暫存區(staging area)提交成一個版本(localrepo)| |git log|查詢版本狀態| |git remote|欲瞭解目前已加進來的遠端版本控制倉庫(第一次上傳此資料至雲端要先打這個做連結)| |git config --global user.name空格名字或email|修改名字或email| |git checkout 貼上特定狀態的HASH值|時光機| ### remote 遠端版本控制倉庫 | 指令 | 用途 | | -------------- | -------------- | |git remote add origin 網址 |會列出當初加入遠端版本控制倉庫時指定的名稱,origin是檔案名| |git pull|把目錄底下為止的所有檔案抓下來 (**小訣竅:線下在,在推上。**)| |git push origin master|將localrepo推上去的檔案推入GitHub(origin為檔名;master為分支)| :::success 參考git教學[網址](https://blog.techbridge.cc/2018/01/17/learning-programming-and-coding-with-python-git-and-github-tutorial/https://blog.techbridge.cc/2018/01/17/learning-programming-and-coding-with-python-git-and-github-tutorial/)。 >[name=2020.11.26] ::: ## branch | 指令 | 用途 | | -------- | -------- | |git branch 分支名 |新增分支。 | |git branch |列出目前的分支,*綠色是所在分支。 | |git checkout 分支名|更改所在分支。| |git merge 分支名|合併分支。| --- *~~ 以下為同情邊緣人我之好心邱妍瑛同學協助提供~~* --- ## 超簡易版 Vim 一開始會在"Normal"模式,又稱命令模式,在這個模式下,無法輸入文字,僅能進行複製、貼上、存檔或離開動作。 要開始輸入文字,需要先按下 i、a 或 o 這三個鍵其中一個進入 "Insert"模式,便能開始打字。 ``` i 表示 insert。 a 表示 append。 o 表示 新增一行並開始輸入。 ``` 在"Insert"模式下,按下 ESC 鍵或 Ctrl + [ ,可退回至 "Normal"模式。 ``` :w 會進行存檔。 :q 會關閉這個檔案(但若未存檔會提示先存檔再離開)。 :wq 是存檔完成後直接關閉這個檔案。 ``` ## git log 會出現 ```javascript= commit eb4ef1e4f5c910d4d7fb6b3bc152e083a55a378c (HEAD -> master) ``` 綠字是版本的身份證字號(HASH值)。HEAD是資料夾的版本狀態,我們現在在哪,因為開發時版本會一直增加(出現很多分支)。master是預設的分支名字,也就是開發的版本,告訴你這條master的分支在哪個狀態。 ```javascript= Author: yanyingchiu <3littlemoon3@gmail.com> ``` 自動抓了名字跟email,可修改。 ```javascript= Date: Fri Aug 10 15:05:25 2018 +0800 ``` 會記得按enter的瞬間。 ## 基本指令 by.共筆(未整理) ==control + L== 快速清除螢幕(介面) ==fn + shift + insert== 文字介面的貼上 ## 相關網站暨參考資料 coding365共筆 >https://hackmd.io/5NsPfI7pTAyLvF9_B1CpMg 其他網站 >https://backlog.com/git-tutorial/tw/intro/intro1_1.html > >https://gitbook.tw