1. 程式人生 > 其它 >GIT常用命令大全(二)

GIT常用命令大全(二)

1.忽略檔案許可權或檔案所有者

git config core.filemode false  // 當前版本庫
git config --global core.fileMode false // 所有版本庫
cat .git/config  //在git頂層管理的目錄,檢視當前git本地倉庫的配置檔案

2.忽略某檔案或某目錄所有檔案的變化

//1、對於還沒有track的檔案或目錄(沒有add和commit的檔案)1)~/.gitconfig  忽略規則由本機所有倉庫共用
如:

[user]
    name = yourname
    email = [email protected]
[gui]
    encoding 
= utf-8 [core] excludesfile = ~/.gitignore 也可以用命令設定 git config --global core.excludefile ~/.gitignore (2).git/info/exclude 倉庫內根資料夾全域性忽略檔案的配置檔案,配置該檔案可以忽略。支援正則表示式 (3).gitignore 可以在倉庫某一級目錄下的建立該配置檔案,增加忽略檔案的規則。若在倉庫的根資料夾建立,效果等同於.git/info/exclude配置檔案 //配置語法: 以斜槓“/”開頭表示目錄; 以星號“*”通配多個字元; 以問號“?”通配單個字元 以方括號“[]”包含單個字元的匹配列表; 以歎號“
!”表示不忽略(跟蹤)匹配到的檔案或目錄; //2.對於已經快取,但未commit的檔案 git rm --cached filename 使用命令將要忽略的檔案從快取的索引中刪除,再使用1中的方法增加忽略 git reset HEAD filename 也可以使用這個 //3.對於已經track的檔案 忽略跟蹤(提交程式碼時,忽略某一個檔案不提交,即某個檔案不被版本控制) git update-index --assume-unchanged FLIE #FILE是目標檔案路徑 恢復跟蹤 git update-index --no-assume-unchanged FLIE #FILE是目標檔案路徑 不過如果執行 git checkout和git reset的時候仍然會影響到這些檔案,並把內容恢復到被跟蹤的內容(再次修改仍然不會被跟蹤)。 如果忽略的檔案多了,可以使用以下命令檢視忽略列表 git uls
-files -v | grep '^h\ ' 提取檔案路徑,方法如下 git ls-files -v | grep '^h\ ' | awk '{print $2}' 所有被忽略的檔案,取消忽略的方法,如下 git ls-files -v | grep '^h' | awk '{print $2}' |xargs git update-index --no-assume-unchanged

3.合併多次commit為一次commit

 git rebase -i HEAD~4 對最近的 4 個 commit 進行 rebase 操作;
操作Commands :
pick:保留該commit (縮寫p)
reword:保留該commit,但要修改該次commit的註釋(r)
edit:保留該commit,但要停下來修改該提交(不僅僅修改註釋)(e)
squash:將該commit和前一個commit合併(註釋也合併)(s)
fixup:將該commit和前一個commit合併,放棄當前 commit 的註釋(f)
exec:執行shell命令(x)
drop:丟棄該commit(d)
編輯後儲存退出,git 會自動壓縮提交歷史,如果有衝突,記得解決衝突後,使用
git add .
 git rebase --continue 
重新回到當前的 git 壓縮過程
如果你想放棄這次壓縮的話,執行以下命令
git rebase --abort
推送到遠端倉庫 git push -f

4.刪除某次commit

可以使用 git 壓縮 rebase 指令來刪除某個 commit
可以通過 git rebase -i HEAD~1 (對最近1次 commit 進行 rebase) 或 git rebase -i 9fbf10(對 commit id 前幾位為 9fbf10 的 commit 之後的 commit 進行 rebase);
將需要刪除的 commit 設定操作指令 drop ,儲存退出即可;
 在執行 git log 時,可以發現該條 commit 已經從提交歷史中刪除了;

5.修改當前commit的註釋

git commit --amend

出現有註釋的介面(你的註釋應該顯示在第一行), 輸入i進入修改模式,修改好註釋後,按Esc鍵 退出編輯模式,輸入:wq儲存並退出。ok,修改完成。

如果修改之前的註釋,可以使用git rebase -i [commit_id]指令,使用edit的選項