Git常用指令

  • 843
  • 0
  • Git
  • 2019-03-03

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 blame  -L StartLine,EndLine FileName
git blame -L StartLine,FileName
git blame -L EndLine,FileName

顯示檔案每一行誰異動。

git branch 自己取的分支名稱
\commit節點

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 chekcout .

Git會在該索引當中有沒有該檔案,如果有就把它取
出,如果沒有,從最新的commit節點開始,依照時
間順序往前尋找,然後取出第一個找到的檔案版本。

git checkout commit 節點 \ filename

從Git檔案庫中commit節點取出指定的檔案。
git checkout 分支名稱 切換指定的分支。
git checkout -f 分支名稱 在切換分支的時候,Git會先比對檔案庫中的目前
分支的檔案內容,是否和將要切換過去的分支的檔
案內容相同。
git checkout -b 新分支的名稱 \ commit節點 建立指定的分支,切換到新分支上,如果有指定
commit,在該節點長出分支。

git clone 遠端檔案庫路徑\本地Git檔案庫
​資料夾名稱
git clone //電腦名稱/遠端檔案庫路徑\本地
Git檔案庫​資料夾名稱
git clone http://url or ip/檔案庫路徑\本地
Git檔案庫資料夾名稱
git clone \Git帳號@伺服器名稱or ip:遠端
檔案庫路徑 本地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 
git config --global -l
git config --system -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 config --global --unset 設定項目名稱
git config --system --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 diffTool commit節點1 commit節點2 檔案名稱
git diffTool --no-index 檔案1 檔案2
git diffTool --cached filename
git diffTool commit節點 filename

使用外部檔案比對程式,比較資料夾,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 \ 
遠端檔案庫名稱 \
遠端檔案庫url

在本地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節
點狀態
--sort表示只有檔案庫中資料會變更,Git索引和資料夾檔案
都不會受到影響。
--mixed預設選項,表示Git索引也會回復到指定節點的狀態
,但是資料夾中的檔案仍然不會受到影響。
--hard部分,檔案庫和Git索引和資料夾檔案,都會回復
到指定節點的狀態。

git revert commit節點 回到指定的commit節點的前一個節點的檔案狀態。
git revert --abort 如果執行git revert指令的時候發生衝突,可以指令該指令
取消revert的操作。
git rm 檔案名稱

Git會執行兩項檢查:
1.Git索引中有沒有檔案內容,有沒有執行過git add檔
    案名稱如果有,表示檔案內容和檔案庫不一樣,為
    了避免遺失資料,Git會提示訊息,並放棄執行。
2.資料夾中的檔案內容是不是和資料庫中一樣,如果
   不一樣Git同樣的會顯示提醒訊息,然後放棄執行,
   以免遺失資料。通過兩項檢查則會馬上刪除資料夾
   檔案,然後在索引中檔案庫中刪除檔案,最後在執
   行git commit才會真正檔案庫中的刪除。

git rm --cached 檔案名稱

從指定檔案變成tracked 變成 untracked,以後不需要
這個檔案庫中更新檔案,而且Git索引中這個檔案內容
也會被移除,但是Git不會移除這個檔案。

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選項,表示要顯示全部的
分支否則只顯示目前操作中的分支。

 

元哥的筆記