發表文章

目前顯示的是 四月, 2016的文章

查詢 Web 標準是否有支援

如何 git merge 更改檔名的檔案

參考資料:http://stackoverflow.com/questions/4722423/how-to-merge-two-branches-with-different-directory-hierarchies-in-git 如果在 branch 裡有 rename file X 為 Y, 並且 master 和 branch 都有改 X ( Y ) 的內容。那麼, merge master 的時候, git 可能會回報 master 的 X 被刪除了, 造成 merge conflict (deleted in ... and modified in ...)。 解法是提高 merge.renameLimit, 比方說 git config merge.renameLimit 999999999。merge 時間會久一點, 但 git 會找出 X 在 branch 裡已被 rename 成 Y。

用 vimdiff 作 git merge

參考文章http://www.rosipov.com/blog/use-vimdiff-as-git-mergetool/http://yodalee.blogspot.tw/2013/03/vimdiffgit-merge-conflict_28.html 以前我用 kdiff3, 後來需要在 terminal merge, 改試 vimdiff, 也很好用。 設定:$ git config --global merge.tool vimdiff 執行 (在 git merge 有 unsolved conflict 後):$ git mergetool UI 顯示: 左上: LOCAL 中上: BASE 右上: REMOTE 下面: 編輯區 vim 指令:[c, ]c: 在 hunk 間移動, 和 vim-gitgutter 一樣 搜 "<<<<" 找 conflict:diffget LOCAL: 目前的 hunk 選用 LOCAL:diffget REMOTE: 目前的 hunk 選用 REMOTE:diffupdate: 更新 diff 畫面 修改後存檔離開, 會自動 resolved conflict。無修改離開會跳過 merge, 維持原本狀態。 其它查看 merge 狀態:$ git status 如果整份檔案都要選用 LOCAL, 改用 git 指令:$ git checkout --ours 全用 REMOTE:$ git checkout --theirs