1. 程式人生 > 其它 >git使用過程中遇到的問題

git使用過程中遇到的問題

git檢視某個檔案的修改歷史及具體修改內容

git log --pretty=oneline 檔名

使用git show即可顯示具體的某次的改動的修改

在git中出現中文亂碼的解決方案

解決方案

    • 在cygwin中,使用git add新增要提交的檔案的時候,如果檔名是中文,會顯示形如 274\232\350\256\256\346\200\273\347\273\223.png 的亂碼。
      • 解決方案:在bash提示符下輸入:git config --global core.quotepath false
      • core.quotepath設為false的話,就不會對0x80以上的字元進行quote。中文顯示正常。

    • 在MsysGit中,使用git log顯示提交的中文log亂碼。
      解決方案:
      1. 設定git gui的介面編碼git config --global gui.encoding utf-8
      2. 設定 commit log 提交時使用 utf-8 編碼,可避免伺服器上亂碼,同時與linux上的提交保持一致!git config --global i18n.commitencoding utf-8
      3. 使得在 $ git log 時將 utf-8 編碼轉換成 gbk 編碼,解決Msys bash中git log 亂碼。git config --global i18n.logoutputencoding gbk
      4. 使得 git log 可以正常顯示中文(配合i18n.logoutputencoding = gbk),在 /etc/profile 中新增:export LESSCHARSET=utf-8

    • 在MsysGit自帶的bash中,使用ls命令檢視中文檔名亂碼。cygwin沒有這個問題。
      • 解決方案:
        1. 使用ls --show-control-chars命令來強制使用控制檯字元編碼顯示檔名,即可檢視中文檔名。
        2. 為了方便使用,可以編輯 /etc/git-completion.bash ,新增一行 alias ls=“ls --show-control-chars”

    • 終極的解決方案是通過修改git和TortoiseGit原始碼實現,有網友這麼做了:讓Windows下Git和TortoiseGit支援中文檔名/UTF-8 ,也可以直接訪問這個開源的Google專案:utf8-git-on-windows 。

    • 如果不抗拒命令列的話,直接用Cygwin來提交Git庫。因為Cygwin其實是一個在Windows平臺上的模擬器,它完全模擬GNU/Linux的方式執行,所以Cygwin中的Git是採用UTF-8編碼來儲存中文的。

回退到某個commit號:git reset --hard 4b6339a108c33a7904c6bf72f018ec2927bc9337

cherry-pick的commit之間有沒有做過更改沒有直接關係.

如果沒有更改, 當然會直接merge沒有conflict.

如果二者之間還有過更改, 因為cherry-pick其實是用那次commit的內容進行patch, 所以要分情況看:

  1. 所做更改沒有在diff資訊的context範圍內, 沒有衝突.
  2. 所做更改在diff資訊的context範圍內, 你需要解決這個衝突才能merge.

後期會繼續補存