GIT常用命令大全(二)
阿新 • • 發佈:2021-10-20
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的選項