Git常用指令
註記:常用git 指令(以便查看)
Git指令 | 功能說明 |
---|---|
git add . |
全部檔案的內容加到git索引,以便執行commit。 |
git add filename1 filename2 | 指定檔案的內容加入git索引。 |
git add -A | 把全部檔案內容加入到git索引以外,也會檢查檔案 是否有檔案被刪除狀況。 |
git add --update or git add -u |
比對目前資料夾中的檔案內容,和git檔案庫中的檔案 內容,把有修改的部分和刪除檔案加到git索引,以便 執行commit。 |
git blame filename |
顯示檔案每一行誰異動。 |
git branch 自己取的分支名稱 |
1.有指定commit就會該節點,長出分支。 2.如果沒指定則從最新的長出分支。 |
git branch 新分支名稱 已經存在分支名稱 |
特定分支中長出新的分支。 |
git branch -a | 列出檔案庫和遠端檔案庫中所有的分支。 |
git branch -d 要刪除的分支名稱 | 要指定的刪除分支。 註記:要切換到另一個分支,才能執行。 |
git branch -D 要刪除的分支名稱 |
強制刪除分支的動作。 註記:要切換到另一個分支,才能執行。 |
git branch --list 分支名稱樣版 | 符合顯示分支名稱樣版,所有分支。 ex:git branch --list bug/*。 |
git branch -m 新的分支內容 | 變更分支名稱,需切換到另一個分支。 |
git checkout 檔案1 檔案2... |
Git會在該索引當中有沒有該檔案,如果有就把它取 出,如果沒有,從最新的commit節點開始,依照時 間順序往前尋找,然後取出第一個找到的檔案版本。 |
git checkout commit 節點 \ filename |
從Git檔案庫中commit節點取出指定的檔案。 |
git checkout 分支名稱 | 切換指定的分支。 |
git checkout -f 分支名稱 | 在切換分支的時候,Git會先比對檔案庫中的目前 分支的檔案內容,是否和將要切換過去的分支的檔 案內容相同。 |
git checkout -b 新分支的名稱 \ commit節點 | 建立指定的分支,切換到新分支上,如果有指定 commit,在該節點長出分支。 |
git clone 遠端檔案庫路徑\本地Git檔案庫 |
從遠端檔案庫複製一個本地Git檔案庫到自己的電腦。 1.遠端檔案庫在自己電腦上 2.遠端檔案庫在區域網路電腦上,以共用資料夾分享 3.遠端檔案庫在Web伺服器上,並設定好Web伺服器 執行Git 4.在SSH伺服器上,建立一個Git程式專用的帳號 |
git clone --bare\程式專案資料夾名稱\遠端檔案 庫名稱路徑 |
從本地Git檔案庫複製一個Bare型態的遠端檔案庫。 註記:通常會幫Bare的Git檔案庫加上附檔名.git ex:Tennis.git |
git commit -m "這次作業說明" \\ --author='操作者<email>' |
把目前Git索引內容送進檔案庫儲存 |
git commit -a -m "這次作業說明" \\ --author='操作者<email>' git commit -all -m "這次作業說明" \\ --author='操作者<email>' |
先執行git add -u 在執行git commit -m... |
git commit --amend -m "新作業說明" \\ --author='操作者<email>' |
修改最近一次commit節點作業說明或操作者資料 |
git config -l |
只有使用 -l 選項時會顯示三個不同層級設定檔中 所有的設定項目。低優先權的設定檔項目會顯示, 最高優先權檔案項目則最後。 1.加入--global項目顯示中優先券設定檔的項目。 2.加入--sytem選項時會顯示最低優先權設定檔中的。 項目。 |
git config 設定項目中的名稱 '設定值' git config --global 設定項目名稱 '設定值' git config --system 設定項目名稱 '設定值' |
在Git設定檔中加入或是修改設定。 |
git config alias.指令別名\'正式指令和選項' git config --global alias.指令別名\ '正式指令和選項' git config --system alias.指令別名\ '正式指令和選項' |
用簡短縮寫代表一個指令,指令別名不能包含空格 正式指令和選項裡頭沒有空格,可以省略單引號。 1.加入global是寫入登入帳號home directory的 gitconfig設定檔。 2.加入--system則寫入Git程式安裝資料夾中裡頭, etc\gitconfig設定檔。 |
git config --unset 設定項目名稱 |
刪除Git設定檔中任一個設定項目。 關於global與system如上。 |
git diff 檔案名稱 git diff commit節點1 commit節點2 檔案名稱 git diff --no-index 檔案1 檔案2 git diff --cached filename git diff commit節點 filename |
使用Git內建檔案比對程式,比較資料夾,Git索引和 Git檔案庫中各種版本的檔案內容。 |
git diffTool 檔案名稱 |
使用外部檔案比對程式,比較資料夾,Git索引和 Git檔案庫中各種版本的檔案內容。 |
git fetch git fetch --all |
從遠端檔案中取得目前所在分支的最新資料。 註記:如果想取得全部分支最新資料,加上--all。 |
git gc --選項 | 清理git檔案庫,常用選項如下 1.--arggressive Git在預設情況下,會用比較快速方式檢查檔案庫 ,並完成清理。 2.--auto Git會先判斷檔案是否需要清理,情況良好就不會 執行清理。 3.---no-prune Git不要清除檔案部會用到的資料,只需整理它們。 |
git grep '要找的字串' commit 節點 | 搜尋指定的commit節點中所有檔案內容 |
git grep -e '要找的字串1'\ -e '要找的字串2' commit 節點 |
以or方式結合搜尋字串,只要出現其中一個就算符 合條件。 |
git grep -e '要找的字串1'\ --and\ '要找的字串2' commit 節點 |
以and方式結合搜尋字串,必須所有字串符合都出 現才算符合條件。 |
git init | 目前資料夾建立Git檔案庫。 |
git init --bare Git 檔案庫資料夾內容 | 建立bare型態的Git檔案庫。 |
git log | 依照時間順序,從最近一次commit節點開始,往前列 每一次的commit的資料,列出識別碼、執行者、日期 和說明。 |
git log filename1 filename2 | 只顯示有更動指定檔案的commit節點。 註記:包含加入與刪除 |
git log --afte='西元年-月-日-時間' \ --before='西元 年-月-日 時間' |
指定要顯示某一段期間的commit資料。 註記:--after可以換成--since --before可以換成--until |
git log --graph --oneline --all --decorate | --graph用文字模式排列出commit節點演進圖。 1.加上--online最精簡方式顯示 2.加上--all顯示所有分支commit資料 3.加上--decorate標註分支名稱 |
git log --stat git log --shortstate git log --numsate |
顯示每一個commit變更程式碼和檔案的狀況, 包含有多少檔案與修改、增加幾行或刪除幾行 程式碼狀況。 |
git ls-files | 列出目前Git檔案庫中的檔案清單。 |
git ls-remote | 列出本地Git檔案庫對應的所有遠端Git檔案庫。 |
git merge 分支名稱 | 把指定的分支名稱合併目前所在的分支。 |
git merge --abort | 合併過程發生衝突之後,執行此指令,可放棄合併, 並回到之前merge前狀態。 |
git merge --no-ff 分支名稱 | 不要使用fast-forward merge。 |
git mergetool | 啟動Git設定檔終指定Merge Tool。 利用外部程式來編輯衝突的檔案。 |
git mv 原檔案(原資料夾) 新檔案(新資料夾) | 變更資料夾中的檔案名稱,或是子資料夾名稱,記錄 Git檔案索引。 |
git pull git pull --all |
git pull會執行兩項 1.從遠端檔案庫取得最新的分支資料,--all部分更新 一次取得全部更新分支資料。 2.遠端Git檔案庫更新到本機Git檔案庫更新。 |
git pull --rebase git pull -r |
把git pull的第二步驟換成git rebase原來是git merge |
git push |
Git本地檔案庫中,所有曾經傳送給遠端Git檔案庫的 |
git push origin 分支名稱 | 把指定的分支最新狀態送到origin屬性所對應的遠端 Git檔案庫。 |
git push --set-upstream origin 分支名稱 git push -u origin 分支名稱 |
把指定的分支最新狀態送到遠端Git檔案庫。 |
git push 遠端檔案庫的url分支名稱 | 把指定的分支的最新狀態,送到指定的遠端Git檔案庫。 |
git push --all | 本地檔案庫中所有分支送到遠端Git檔案庫。 |
git push 遠端檔案庫名稱 --delete \ 分支名稱 | 刪除遠端Git檔案庫中的指定分支。 |
git rebase 分支名稱 | 把指定的分支的修改套用到目前的分支。 |
git rebase --abort | 執行rebase後出現衝突,用此指令可取消rebase操作。 |
git rebase --continue | rebase出現衝突狀況,接者可以執行git add將檔案加入 Git索引,最後在執行此指令,完成rebase操作。 |
git reflog HEAD 任何分支名稱 | 顯示HEAD或是任何分支變動歷史記錄。 |
git remote -v | 顯示和遠端Git檔案庫相關的設定。 |
git remote add \ |
在本地Git檔案庫設定檔加入指定的遠端Git檔案庫名稱 並且設定他的URL。 |
git remote rm 遠端Git檔案庫的名稱 git remote remove 遠端Git檔案庫的名稱 |
刪除本地Git檔案庫的設定檔指定的遠端Git檔案庫名稱。 |
git remote renamte 舊名稱 新名稱 |
改變Git遠端檔案庫的名稱。 |
git remote set-url \ 遠端檔案庫名稱的新url | 改變遠端Git檔案庫的新URL。 |
git remote show 遠端Git檔案庫的名稱 | 顯示指定的遠端檔案庫的詳細資料。 |
git remote update | 讓Git比對本地的Git檔案庫和遠端Git檔案庫的分支名稱, 找出對應分支,並且在本地Git檔案庫中建立追蹤分支。 |
git reset HEAD 檔案名稱 | 將指定檔案的內容從Git索引中刪除。 |
git reset --sort commit節點 git reset --mixed commit節點 git reset --hard commit節點 |
將Git檔案庫(消極),讓Git檔案庫回復到某一個commit節 |
git revert commit節點 | 回到指定的commit節點的前一個節點的檔案狀態。 |
git revert --abort | 如果執行git revert指令的時候發生衝突,可以指令該指令 取消revert的操作。 |
git rm 檔案名稱 |
Git會執行兩項檢查: |
git rm --cached 檔案名稱 |
從指定檔案變成tracked 變成 untracked,以後不需要 |
git shortlog | 依照人名的字母順序,列出每一個人commit的次數與說明。 |
git show commit節點 | 顯示特定commit節點詳細資料。 |
git show 檔案名稱 | 顯示指定檔案最新版本的修改狀況。 |
git show commit 節點:檔案名稱 | 顯示指定的commit節點中的檔案內容。 |
git stash list | 顯示Git暫存區的狀態。 |
git stash pop git stash apply |
取出暫存區的檔案將它們內容合併到目前資料夾中的檔案。 |
git stash save | 執行兩項工作: 1.儲存資料夾中Git追蹤的檔案和檔案庫最新檔案版本差異。 2.資料夾中Git追蹤的檔案還原成檔案庫中最新版本。 |
git status | 1.檢查Git索引內容看看是否需要執行commit存入檔案庫。 2.比對資料夾中的檔案和檔案庫中的檔案,列出被修改過 檔案清單。 3.列出untracked檔案。 |
git tag 自訂標籤名稱 \ commit節點 | 幫指定commit節點貼上自訂標籤,之後可以用自訂的標籤 來指定commit節點。 |
git tag -d commit節點 | 移除自訂commit節點標籤。 |
gitk --all | 啟動圖形操作模式,如果加入--all選項,表示要顯示全部的 分支否則只顯示目前操作中的分支。 |
元哥的筆記