昨天晚上花了點工夫把第一個版本的解題成果都上傳到github去,順便熟悉一下git的指令,然後果然發生一些狀況;
第一個狀況是第三題的影片檔當初轉檔的格式錯誤,所以檔案很大,整個專案快300mb就這樣被我傳上去了,後來改了格式,而且也把原始資料加入忽略清單,重新push後發現專案更大,原來是我忘了版控系統的最重要精神就是保留一切的修改紀錄,所以雖然我在本機上置換檔案,但是在版本紀錄中還是有我原本的檔案在,解決方式在git中很簡單,就是把隱蔵目錄.git砍掉,同時也把github上的專案刪除後重建,這樣再重新push後就是新專案的大小了。
第二個狀況是github在開新專案時,可以選擇要不要先初始化並建立一個readme.md檔,如果我選擇了初始化,就會push不上去,如果不初始化,照它給的引導說明就可以push上去,這原因合理,因為我在github上有了一個readme.md檔,但本地端沒有,所以兩邊版本內容不同的狀況下會無法push,所以我先做了一次pull想把readme.md拉下來做合併,結果拉不下來,上網google了不少資料都沒找到符合我狀況的解答,雖然用 push -f 強推上去也是可以的,但這樣就把會readme.md這個檔給蓋掉,花了兩個小時才找到原因,而且這個解決方式還是git在pull不下來時就有給了,只是我當時懶得去細讀英文的說明;這個狀況是因為git較新的版本不允許沒有同主支的分支做合併,而我在github上開的新專案和我本地端剛建立的新版控目錄都是獨立的新master,所以git認為這應該是兩個不同專案而且沒有關聯的東西,不應該合併;解決方式是在pull時,加上 –allow-unrelated-histories 這個參數,這樣就可以把沒有關聯的兩個分支合併在一起,之後再push上去就可以了成了。
把專案放上github後,之後要做本地端的練習或更新就簡單許多了,不然之前每練習完一次就要備份一次目錄,浪費不少空間,現在改成git來管理後,只要在每次有較大變動時做一次commit,就可以建立起一個版本,而且只會紀錄有變動的部份,也可以利用分支的方式來管理一些多元解法的動作,不再需要用多個版本或註解片段的方式來管理。
留言