git 常用操作與遇到的問題

2021-09-27 12:51:07 字數 2759 閱讀 2899

# 刪除 untracked files

git clean -f

# 連 untracked 的目錄也一起刪掉

git clean -fd

# 連 gitignore 的untrack 檔案/目錄也一起刪掉 (慎用,一般這個是用來刪掉編譯出來的 .o之類的檔案用的)

git clean -xfd

# 在用上述 git clean 前,牆裂建議加上 -n 引數來先看看會刪掉哪些檔案,防止重要檔案被誤刪

git clean -nxfd

git clean -nf

git clean -nfd

#git強制覆蓋:

git fetch --all

git reset --hard origin/master

git pull origin master

#git強制覆蓋本地命令(單條執行):

git fetch --all &&?git reset --hard origin/master &&?git pull

新增**

#無需身份驗證

#帶身份驗證

git config https.proxy http://[username:password]@[host:port]

移除**

git config --global --unset https.proxyrefusing to merge unrelated histories:拒絕合併不相關的歷史

## 新增引數進行pull

git pull origin master --allow-unrelated-histories

# 提交 git push 《遠端主機名》 《本地分支名》:《遠端分支名》

git push origin master:master

格式化與多餘的空白字元,特別是在跨平台情況下,有時候是乙個令人髮指的問題。由於編輯器的不同或者檔案行尾的換行符在 windows 下被替換了,一些細微的空格變化會不經意地混入提交,造成麻煩。雖然這是小問題,但它會極大地擾亂跨平台協作。

其實,這是因為在文字處理中,cr(carriagereturn),lf(linefeed),cr/lf是不同作業系統上使用的換行符,具體如下:

換行符『\n』和回車符『\r』

回車符就是回到一行的開頭,用符號r表示,十進位制ascii**是13,十六進製制**為0x0d,回車(return);

應用情況

影響:

這些問題都可以通過一定方式進行轉換統一,例如,在linux下,命令unix2dos 是把linux檔案格式轉換成windows檔案格式,命令dos2unix 是把windows格式轉換成linux檔案格式。

情況一:

git 可以在你提交時自動地把回車(cr)和換行(lf)轉換成換行(lf),而在檢出**時把換行(lf)轉換成回車(cr)和換行(lf)。 你可以用git config --global core.autocrlf true 來開啟此項功能。 如果是在 windows 系統上,把它設定成 true,這樣在檢出**時,換行會被轉換成回車和換行:

#提交時轉換為lf,檢出時轉換為crlf

$ git config --global core.autocrlf true

情況二:

如果使用以換行(lf)作為行結束符的 linux 或 mac,你不需要 git 在檢出檔案時進行自動的轉換。然而當乙個以回車(cr)和換行(lf)作為行結束符的檔案不小心被引入時,你肯定想讓 git 修正。 所以,你可以把 core.autocrlf 設定成 input 來告訴 git 在提交時把回車和換行轉換成換行,檢出時不轉換:(這樣在 windows 上的檢出檔案中會保留回車和換行,而在 mac 和 linux 上,以及版本庫中會保留換行。)

#提交時轉換為lf,檢出時不轉換

$ git config --global core.autocrlf input

情況三:

如果你是 windows 程式設計師,且正在開發僅執行在 windows 上的專案,可以設定 false 取消此功能,把回車保留在版本庫中:

#提交檢出均不轉換

$ git config --global core.autocrlf false

你也可以在檔案提交時進行safecrlf檢查

#拒絕提交包含混合換行符的檔案

git config --global core.safecrlf true

#允許提交包含混合換行符的檔案

git config --global core.safecrlf false

#提交包含混合換行符的檔案時給出警告

git config --global core.safecrlf warn

git遇到的問題

error 無法推送一些引用到 note about fast forwards 小節。解決方案1 git pull origin master 先把遠端伺服器github上面的檔案拉下來,再push 上去。解決方案2 git push u origin master 2.git remote ad...

git遇到的問題

解決方案是 401沒許可權。是在gitstack下給專案新增使用者。先建立乙個新分支提交 git branch newbranch 檢查這條分支 git branch 這時終端會 newbranch master 這時切換到工作分支 git checkout newbranch 然後將帶動的提交 g...

git遇到的問題

error 無法推送一些引用到 note about fast forwards 小節。解決方案1 git pull origin master 先把遠端伺服器github上面的檔案拉下來,再push 上去。解決方案2 git push u origin master 2.git remote ad...