Git 跨平台開發 未修改的檔案出現異動(換行警告、檔案權限)

嘗試把一個大專案從 SVN 移到 Git 時,發現從 Windows 環境作 git clone 的時候,檔案會莫名奇妙的有異動,而這個異動卻從文件比對看不出有差異。

過程中試了很多方法才終於解決,以下是完整的過程,文章最後紀錄跨平台開發的情境下應該做哪些 Git 設定。

繼續閱讀

Git 同步對齊 fork 專案跟原始專案的 commit

使用fork的方式進行開發

開發到一個段落時,如果直接推送自己的東西進master,未來要合併回原始專案的時候,很有機會遇到衝突(可能錯過了一些commit導致);所以先跟原始專案做”對齊”的動作,再推送自己開發的東西會比較保險

情境

  • bbb從aaa/projectfork出來bbb/project進行開發

  • aaa/project的master分支有10個commit。

  • 本地的master分支有5個原始commit,3個開發產生的commit。

  • bbb想要把本地的master分支,跟aaa/project的commit保持一致,再把自己開發的東西一起推送到bbb/project

步驟

  1. 設定原始專案為上游分支

    1
    git remote add upstream aaa/project.git
  2. 抓取原始專案的異動

    1
    git fetch upstream
  3. 切到master分支

    1
    git checkout master
  4. 把upstream/master合併到master分支

    1
    git rebase upstream/master

    如果有異動還沒推,先stash起來,做完rebase後再取出

  5. 推送

    1
    git push

參考資料

Git中同步主干的代码到fork分支里
【狀況題】怎麼跟上當初 fork 專案的進度?
Stash(暫存)