前言
此篇心得筆記是由高見龍投影片閱讀而來
內容為對 Git 基本指令操作和認識
基本介紹
以下是幾個常用的線上編輯環境,你可以在上面部屬你想要的開發環境
更多的工具可以參考這裡
Codenvy
Codeanywhere
Cloud9
Koding
設定
Git 在操作時要先設定你的名稱和 email
之後你看 log 時才知道某個 commit 是誰送的
1 2 3 4 5 6
| git config --list
git config --global user.name "JasonChiuCC" git config --global user.email "jasonchiucc@gmail.com"
|
除了用指令設定外你也可以建立 .gitconfig 來設定
此外也可以設定別名來取代較長的指令
1 2 3 4 5 6 7 8
| [user] email = jasonchiucc@gmail.com name = JasonChiuCC [alias] co = checkout br = branch aa = add --all
|
基本操作
Git 狀態改變流程為
1 2 3 4 5 6 7 8 9
| commit +------------+ | | | v work Dir ---> Staging ----> Rep | ^ | | +------------+ add
|
基本常用指令
1 2 3 4 5 6 7 8
| git init git aa
git rm --cached filename git status git commit -m 'Message' git log
|
修改指令
最後一次 commit 要新增/修改/刪除,就使用 –amend 參數
1 2 3 4 5 6 7 8 9 10 11
|
git commit --amend
git add filename git commit --amend -m 'Add two file'
git rm --cached filename git commit --amend -m 'Add one file'
|
新增空白資料夾
Git 無法 commit 空白的資料夾
如果要 commit 空白資料夾,在資料夾中放入 .keep 或 .gitkeep 空白檔案
檢視歷史
以下是幾種不同顯示歷史紀錄的 alias
1 2 3 4 5 6 7 8
| [alias] lg = log --graph --oneline lg1 = !"git lg1" lg2 = log --graph --oneline --decorate --date=relative --all lg3 = log --graph --abbrev-commit --decorate --date=relative --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(dim white)- %an%C(reset)%C(bold yellow)%d%C(reset)' --all lg4 = log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold cyan)%aD%C(reset) %C(bold green)(%ar)%C(reset)%C(bold yellow)%d%C(reset)%n'' %C(white)%s%C(reset) %C(dim white)- %an%C(reset)' --all lg5 = log --graph --abbrev-commit --decorate --date=relative --all lg6 = log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) %C(bold yellow)%d %C(white)%s%C(reset)%n ' --all
|
檢視特定檔案紀錄
1 2 3 4 5
| git log -p filename
git blame filename
|
回復
如果檔案或工作目錄被改亂,想回復到最後 commit 的狀態
1 2 3 4 5
| git checkout filename
git checkout .
|
取消 commit
有時候已經 commit 了,但是想取消最後一次 commit
等到改完之後再重新 commit
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
git reset HEAD^
git reset HEAD^ --hard
git clean -f
git clean -df
|
分支指令
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| git branch car
git branch car -d
git branch
git checkout car
git checkout -b car
|
合併分支
合併的流程是,拉別人過來
所以你要先切到主要的分支,然後再拉其他分之合併進來
通常開發分支合併到 master 後會刪除
1 2 3 4 5 6 7 8 9 10 11 12
| git checkout master git merge car git branch car -d
git merge car --no--ff
git branch --merged
git branch --no-merged
|
修改 commit(未完成)
標籤
1 2 3 4 5
| git tag
git tag 1.0.0
|
遠端操作
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| git remote -v
git remote add origin URL
git remote rm origin
git push origin master
git push origin car
git push origin :car
git pull origin master
|
暫存
想把目前狀態存起來,先去處理其他事情
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| git stash
git stash apply
git stash drop
git stash show stash@{0} git stash apply stash@{0} git stash drop stash@{0}
|