Git 跨平台開發 未修改的檔案出現異動(換行警告、檔案權限)
嘗試把一個大專案從 SVN 移到 Git 時,發現從 Windows 環境作 git clone
的時候,檔案會莫名奇妙的有異動,而這個異動卻從文件比對看不出有差異。
過程中試了很多方法才終於解決,以下是完整的過程,文章最後紀錄跨平台開發的情境下應該做哪些 Git 設定。
嘗試把一個大專案從 SVN 移到 Git 時,發現從 Windows 環境作 git clone
的時候,檔案會莫名奇妙的有異動,而這個異動卻從文件比對看不出有差異。
過程中試了很多方法才終於解決,以下是完整的過程,文章最後紀錄跨平台開發的情境下應該做哪些 Git 設定。
開發到一個段落時,如果直接推送自己的東西進master,未來要合併回原始專案的時候,很有機會遇到衝突(可能錯過了一些commit導致);所以先跟原始專案做”對齊”的動作,再推送自己開發的東西會比較保險
bbb從aaa/project
fork出來bbb/project
進行開發
aaa/project
的master分支有10個commit。
本地的master分支有5個原始commit,3個開發產生的commit。
bbb想要把本地的master分支,跟aaa/project
的commit保持一致,再把自己開發的東西一起推送到bbb/project
。
設定原始專案為上游分支
1 | git remote add upstream aaa/project.git |
抓取原始專案的異動
1 | git fetch upstream |
切到master分支
1 | git checkout master |
把upstream/master合併到master分支
1 | git rebase upstream/master |
如果有異動還沒推,先stash起來,做完rebase後再取出
推送
1 | git push |
看了高見龍的影片《你知道Git是怎麼一回事嗎》,學習Git的原理,趁著記憶猶新來寫一下筆記。