---
# System prepended metadata

title: Git GarryLee的課
tags: [Git]

---

###### tags: `Git`

# Git GarryLee的課
* git --version : 檢查版本

* git config --list : (:q 離開shell文本唷)

* git config --global user.name "你的英文姓名"

* git config --global user.email "你的 Email"

* cd \<path\> : 設定路徑(可以拉資料夾進CMD視窗)
![](https://i.imgur.com/8nRLcTb.png)

* ls : 看當前位置的檔案清單。

* git init : 轉換成受git版本控制的資料夾(會生成個隱藏檔)
![](https://i.imgur.com/xHE5yGf.png)

* git status : 查看資料夾狀態。

* * 在Master分支
  * 還沒有任何commits
  * 也沒有需要commit的檔案

![](https://i.imgur.com/8WKzTmz.png)

* * 在工作區還沒有檔案
  * git add <檔名>
    * git --all 任何檔案都放入
    * git add . 同上?
    * git \*.html 同檔名的都放入
  * 再次git status 可看到成功加入
![](https://i.imgur.com/GGPjXCU.png)

* git commit -m "留言" : 記錄該時間點專案的內容。
  * 可見 work tree 已經清乾淨了
![](https://i.imgur.com/jlqqwNf.png)

* 曾add過的檔案可下 :git commit -a -m "留言"。
* 直接add 且 commit 檔案。
* 只要檔案修改過就會被送回工作區。
* add 只是交到暫存區(stage) commit後會才正式記錄。

* git log : 顯示近期的每一筆 commit ，按 q 可以回到命令列。
  * git log --oneline : 精簡版的log資訊。

* git reset <資訊碼> : 回溯那某存檔點，同時解除stage狀態的檔案回工作區。

* git reset <資訊碼> --hard : 回溯並刪除其他存檔點?

* git restore --stage <檔案> : 將檔案從stage丟回工作區。
* git diff : 檢視工作區異動。

* git diff <資訊碼1> <資訊碼2> :  檢視這2個commit差異。
* git reflog : 所有commit記錄。

* git branch : 當前分支。

* git branch <分支名稱> : 創建分支。

* git checkout <分支名稱> : 切換分支。

* git merge cat -m "merge cat 版本" : 先切換回master主支，然後下上述指令，會將cat分支merge到master主支。
* git branch cat -m

* git branch -d <分支>: 刪除分支。

* git remote add origin https://github.com/GithubESP/gitapp06.git
+ 加進去github

* 上面設錯可以用git remote set-url origin 網址

* $ git remote -v : 查看啥?

* git push -u origin master:將主支推上github

上傳成功
![](https://i.imgur.com/9w48HZZ.png)

* git pull origin master : 從 github 載入本機



http無法聯的人可試著用金鑰直接登入(其實就是修改那加上"金鑰@"):
* $ git remote set-url origin 
* https://金鑰@github.com/<組長ID>/<專案名稱>.git



---
## 組別使用 Github
* 組長創建專案後邀請組員們加入
* 組長將master主支protect起來(可以試推後再看看)
* 組員在一個全新的資料夾連結組長的專案位置
  * 在空資料夾上輸入CMD or 用CMD指定路徑(cd 目標資料夾) 
  * git clone [url]
  * git clone https://github.com/<組長ID>/<專案名稱>.git
  * git remote set-url origin https://github.com/<組長ID>/<專案名稱>.git
  
這樣應該就行了，記得branch個分支，操作都在分支上做，最後需要時再上Github線上Merge分支到主支。


若你想克隆名為 libgit2 的 Git linkable library，可以執行下列命令：
```
git clone https://github.com/libgit2/libgit2
```
這指令將會建立名為「libgit2」的資料夾，並在這個資料夾下初始化一個 .git 資料夾，從遠端倉儲拉取所有資料，並且取出（checkout）專案中最新的版本。 若你進入新建立的 libgit2 資料夾，你將會看到專案的檔案都在裡面了，並且準備就緒等你進行後續的開發或使用。 若你想要將倉儲克隆到「libgit2」以外名字的資料夾，只需要再多指定一個參數即可：
```
git clone https://github.com/libgit2/libgit2 mylibgit
```
這個命令做的事與上一個命令大致相同，只不過在本地創建的倉庫名字變為 mylibgit。