- git config
- 設定基本資料
- git config --global user.name "sky"
- git config --global user.email "email@gmail.com"
- 檢查設定
- git clone
- 複製整份程式碼 (以 pttchrome 爲例)
- git clone https://github.com/iamchucky/PttChrome.git
- 說明 :
(1) 複製紅色框內 git 的 URL
(2) git clone 時會產生一個新的名爲 “PttChrome” 的資料夾
---------------------------------------------------------------------------
- git branch
- 查看 remote 及 local 所有的 branch
- git branch -a
- 說明 :
(1) branch name 前有 " * ", 表示現在所在的 branch
(2) branch name 爲白色的, 表示 branch 爲 remote 的
(3) branch name 爲紅色的, 表示 branch 爲 local 的 - 查看 remote 的 branch
- git branch -r
- 說明 :
(1) 如果 branch 是 remote, git branch -a 和 -r 的結果不同
(2) 用 git branch -a 看 remote branch 前面會多 remote/
➡ remotes/project/remote_branch
(3) 用 git branch -r 看 remote branch 前面不會有 remote/
➡ project/remote_branch - 刪除 branch
- git branch -D test_branch
- 說明 :如果現在的 branch 爲 test_branch 時, 就不能刪除 test_branch,
要先 checkout 到其他 branch 才能刪除 test_branch,否則會出現下面的 error," Cannot delete the branch 'test_branch' which you are currently on."
- git checkout
- 切換到已經存在的 branch
- git checkout existing_branch
- 切換到 remote branch
- git checkout project/remote_branch
- 說明 :
如果要切換到 remote branch, 在 checkout 時不需要加前面的 remotes - 增加新的 branch , 同時切換到新的 branch
- git checkout -b new_branch
- 說明 :
切換到新的 branch, 可能有些檔案的權限是 root,
可能會導致之後無法修改檔案 - (2) 新的 branch 的內容(commit 及 file)是根據原始的 branch 所產生的
ex :
① 假設 branch1 有 A, B 兩個 commit,
如果從 branch1 切換到新的 branch : N_branch1,那 N_branch1 就只有 A, B 兩個 commit
② 假設 branch2 有 A, B, C 三個 commit,
如果從 branch2 切換到新的 branch : N_branch2,那 N_branch2 就會有 A, B, C 三個 commit - 從遠端重新 checkout 某個檔案或某個資料夾 ( “--” 的左右都要空一格)
- checkout 某個檔案
- rm -rf code.c
- git checkout -- code.c
- checkout 整個資料夾
- rm -rf project/code
- git checkout -- project/code
- git pull
- 將 remote 端同一個 branch 的程式更新到 local 端
- git pull
- 說明 :
git pull 後如果出現下面的error 訊息,
表示 local 端的 code.c 的跟 remote 端的程式有衝突,
也就是說已經有人跟你一樣改到 code.c 的同一段程式,
而且比你早把程式放到 server 上
project/code.c
Please, commit your changes or stash them before you can merge.
Aborting
- 圖片說明 :
Working directory : 目前工作的目錄
Staging area : 暫存檔案準備遞交的區域
git directory (Repository) : 儲存庫
沒有留言:
張貼留言