前言
本文整理在 Android Studio 下使用 Github 做版本控制時,會遇到的幾個情境.可以利用子標題去搜尋,標題如下:
1. GitHub Repositories 檔案更新後,如何更新 Android Studio 專案
2. Android Studio 檔案修改後,如何更新檔案至 Github Repositories
3. Check out Github 上的專案到 Android Studio
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTDbni_IJ6hcSrRoNeKJPRipI2wxwooPRDgTSDVL7QPDcPFfFDuXuwT3Gu3FKj2eyU3F0Y-5ZDYJpyTotzAc0aKMgfnn9Qj6tdg8fHG1aRag-z6zKoXIZOAE0FOag1aGq1V2sfeCA5Tis/s0/%25E6%2588%25AA%25E5%259C%2596+2021-02-16+%25E4%25B8%258B%25E5%258D%258811.02.15.png) |
提示 : Local 為電腦端 Remote 為 Github 上專案 |
GitHub Repositories 檔案更新後,如何更新 Android Studio 專案
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJr8m_7jf3KnA1Y-YdvB3oeSlTB0BNEtS_44e6XVOYbk-fQ5FcvjMt2w5qKccMzEHnO7O2dj8wq-1vqnTemUTKmEVXC_xBAY3B7st_Xd7qurZVAuEQ2yphzSvhL3RIB2OdO2cY8NkSlzQ/w400-h165/%25E6%2588%25AA%25E5%259C%2596+2021-02-16+%25E4%25B8%258B%25E5%258D%25889.22.39.png) |
首先直接在 Github 網站上,更新程式碼. 這個情況類似一個 Team 負責一個專案,而其中一個成員更新了專案程式碼 |
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaAI2X0qEPckYNYvcs9re0GvEVHD6mScSg7TCQ3bwCVcaESQkiIwS1RISWHLwSvt_YOlbeltg2VYBF8DAuHft1zxLvGEr84FxaJAOiEx-C7jNE_THEOPMYTN_iiE1sfGjTI_io12NvwU0/s320/%25E6%2588%25AA%25E5%259C%2596+2021-02-16+%25E4%25B8%258B%25E5%258D%25889.24.19.png) |
可以看到版本的歷史紀錄中,已經顯示檔案被更新 |
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQEX2mOBwDGtH3HFvEo5QpcI6rASiCx7W_pVKJYeb2y3Xd_Hey8V8ZlEWhZSPisZpohEVhKBDwJ8VCwCE6m6QLpkScdI-XRNROCX8_fvEzXvFbXkX2AerR7iAiah_uVd_78XPKhi_EhqQ/w640-h216/%25E6%2588%25AA%25E5%259C%2596+2021-02-16+%25E4%25B8%258B%25E5%258D%25889.43.53.png) |
此時專案中 Local 的紀錄,跟 GitHub 上是有差異的
|
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgt2V6uYoXaagRFw140Qt3jQgdTp3QB7zXdg9q366gGGRNSYEkiSDea1-_-9mXPfT-cytpbXwAofAk8xKs8dstK4eHrAHhmfUvzVGWp3NI58rMMNKrzFmB_RF98lNOyglbrW5xbpClouZE/w640-h216/%25E6%2588%25AA%25E5%259C%2596+2021-02-16+%25E4%25B8%258B%25E5%258D%25889.33.33.png) |
Remote 端檔案紀錄也是更新前的紀錄,需要去更新 |
補充 : 如果沒有看到 View Tool - Git 可以到 Tool 選單開啟
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKV80ff2KDmfRzUnvQttuaOuMibalx5dXgUEJInTSZIVT99TQzD0KRvREW4cNgT0sKGZrsAd6mqu5r1Pxc0ro71_mAbyZIMWY-xqvrXf29T0lKQR7VfJCYf-Csj4-SXXM7SNDcNv1qqFg/s320/%25E6%2588%25AA%25E5%259C%2596+2021-02-16+%25E4%25B8%258B%25E5%258D%25889.50.23.png) |
點選更新圖標 Fetch All Remotes |
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3Z2i7dtNT093LwJ6Dif6O5txBOuzK8ooOHzwB_i4NTcVcmDVJ4cj7wqb6hek6loFdlEuBLZ5o68zWqPHig8NXxFkzZO0WIjUdbt6CfGUhW3Io4O63CHbio4X6rqLZXIUIk3TM_PZz6a8/w640-h238/%25E6%2588%25AA%25E5%259C%2596+2021-02-16+%25E4%25B8%258B%25E5%258D%25889.51.32.png) |
Remote 端,歷史列表中就會把 Github 的紀錄撈下來 |
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj09PeL7WsWqOB8s86jqKe9lCKjvDX8bVW8P_IVBpFNo9Z1UM0rQ1CSgWtTRKBCr1_IRDzg15fg7dJxG3E6Um0dJ-2Hj24QEZDDGl4et-w1M8Ozy0vGhfVUB4eEjw7IXEIYzO8XZ47UXg4/w400-h113/%25E6%2588%25AA%25E5%259C%2596+2021-02-16+%25E4%25B8%258B%25E5%258D%25889.52.49.png) |
點選 藍色箭頭 update Project |
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioFPeeeYbqUDl4_orykSIxNP58lxoi1m5BzHlEUrE2kIxasw0WQxleaUMtBCsvXIvkAEU_YZD6YrwK3pld7Vt9GE6tpfeKMEHFM2uMzrNavdYd3itF0aHhPWESkhCjjPIFCh1XuHs_1zs/w400-h148/%25E6%2588%25AA%25E5%259C%2596+2021-02-16+%25E4%25B8%258B%25E5%258D%25889.53.21.png) |
選擇 Merge incoming changes into current branch |
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinV6DzxzJ2rWMVFIuLTxNYd39q7Jyx7qsGeBUrhWirXzqKLXx7SYd6dbZCqRcn14kKK87woqC3L9MJd6mGR3uUTUZQsSAiu9-Phn-m5-M1nzKCj3R5RUnl1CqCzYeGbUkPyr3uLMLuV3w/w640-h124/%25E6%2588%25AA%25E5%259C%2596+2021-02-16+%25E4%25B8%258B%25E5%258D%25889.55.01.png) |
Local 端紅色框標籤,顯示 github 跟 master 已同步,且檔案更新完成 |
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidTTNzvuZ6k11EhviV1oby_udBO9_dSUuxpLM-gL6GASihYwHGUm4Zn8bjUZZUpu7YwkqvyLNBbSEMCIRrfXQpH1LQOi7cVp_7bpkkvbZPh-hvLwhMWK0wCGTHeoDgcks4QabY4-56mv0/w640-h192/%25E6%2588%25AA%25E5%259C%2596+2021-02-16+%25E4%25B8%258B%25E5%258D%258810.00.38.png) |
延續上一張圖,沒有同步只會顯示 master |
Android Studio 檔案修改後,如何更新檔案至 Github Repositories
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhn00XL8mUc6RYyOTu9zMnJVAPlsoTltgaCQFtasjFBqfEBpyoMN7GXANJMmwrr5zTh7LwCu57t-2Dv20fbCILBrSaIL1tvD8TzM9xKr3IBoikdwjhSnsSodc-bVEJwJWbKk0gGBFI6brw/s320/%25E6%2588%25AA%25E5%259C%2596+2021-02-16+%25E4%25B8%258B%25E5%258D%258810.06.22.png) |
假設 Android Studio Local 端的檔案已經更新,我們需要更新到 Github 上 點選綠色打勾 commit |
補充 : View Tool - Commit 可以至 View 開啟
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhElZ90sUAPQQewLMfbsiHU6lQyurNJ5r_dENlKiB4GioorLoBHV8v7DbD4Aj-FvhZ1X0qSdsVhS5FepwopV6zwQ4g1T7K3Z7Uo5n2Yd6H9nKrsUQTaLpozOmHucifofkLb5KKY8AHtE3M/w335-h400/%25E6%2588%25AA%25E5%259C%2596+2021-02-16+%25E4%25B8%258B%25E5%258D%258810.11.17.png) |
填寫 commit Log 訊息,且可以查看所有更改過的檔案 |
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBMLjc7MA1AyhOuBkKsJyDetiBqeVTxoAD16XZzckMNuOVEpFhioR4jXJ-7p3CKkJ2FeyE-wjI0GtKHivYjWnWDLk5_wlSAGmh-d2XffmqesfgNxu_rBK1xJdaF4Ktmnnaf_8-OaKTHtw/w640-h120/%25E6%2588%25AA%25E5%259C%2596+2021-02-16+%25E4%25B8%258B%25E5%258D%258810.12.29.png) |
對檔案點選兩下,會顯示更改前後差異 |
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWB-RMG7aBYCxw9I72cAMe_EGeAeuAAytIf7VK2XXg8-C29JCZCEAt2wQj5nsY87PwQDRfm4FyuyHgLc-9MNID-exLPeEkAmLOtngDaMfaIJyAjj7CYFLOQGESzhNWbdxq1JfG8RP0nG8/s320/%25E6%2588%25AA%25E5%259C%2596+2021-02-16+%25E4%25B8%258B%25E5%258D%258810.13.42.png) |
點選 commit 後,檔案還沒有更新到 Github 上,只有 Local 端會有紀錄 |
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-hiKyFVnIusyqONrk5xGBanfOA5NRS6tposP8aCPeNiI0iLnP_GtVOAXKfdSyr4DLlcbf8KVMrH9JzncxOK_C42ws871k9pIOUKRGIbPkE6O9CEnFD71G4jOqbNCyJvFsnsIU0XREXAE/w640-h180/%25E6%2588%25AA%25E5%259C%2596+2021-02-16+%25E4%25B8%258B%25E5%258D%258810.16.04.png) |
Local 端顯示,紅綠標籤 master 是當前的版本,紫色則是 Github 的版本 |
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFupg8y3VaeUcQjIhnI6rmpiibqcDg1f316Rvx6O2qP3ryxk9U9l67t9uAUCuiBU5YQT7zZWh8bF1LGho7JY-rV6DyDGk_RKHmuW7Z4gjS3HN6RDYrlmV5XHIb7tUYL6-HrD9Q2FPxTAA/s320/%25E6%2588%25AA%25E5%259C%2596+2021-02-16+%25E4%25B8%258B%25E5%258D%258810.18.42.png) |
Push 檔案 |
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyZAwRUjV9igsN0ZViq-0Q0Zbf6oLIX1uoXYwD-hAm71N4IY4LSUkL0zPAmSFdJ6ELOhCxK2Xd_WAO84o7fB4wT0LwqSBCckQB7fe2SDySHnfwAUzgXawqT5MianejiNVYyYv8JKcrBTo/w400-h261/%25E6%2588%25AA%25E5%259C%2596+2021-02-16+%25E4%25B8%258B%25E5%258D%258810.19.02.png) |
點選 Push 檔案,檔案更新到 Github
|
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXa8HDVNRtRYo5qHSBNp7_pFA6XeV9YOnL_X61044FeOIvZmXEJ2ppKg9J5N5vAc5HThGtfJRfQTmpftjmIb5g707V6AsRGtja8Dnaxqo4EyFpnL6xcE_N8OTkg8CGbP3CkOPKg9ddoas/s320/%25E6%2588%25AA%25E5%259C%2596+2021-02-16+%25E4%25B8%258B%25E5%258D%258810.22.47.png) |
可以在 commit 時直接點選 Push |
補充:有可能在 Local 端會連續更新好幾個版本,最後一次 Push 到 Github 上
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWdm9OyenVnVfvUD2SodghleolwLW1zU-d_AhOdVf7R6-29_GHOw0zr_7M29i6OXh1qGxLE9f6IEQJmbfEHM8P2kazwHRpdSVfeQOVu3ccJRWX6p3_gScMS4X7ruVnHJsADr62QMLr5w8/w640-h246/%25E6%2588%25AA%25E5%259C%2596+2021-02-16+%25E4%25B8%258B%25E5%258D%258810.25.44.png) |
會顯示要 push 的版本 |
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoPi1WtTvNFnU7MI4aOkPF9TJI0HvU5ggPGwNONEv8m36ousnJ6IilkQJrahfJgfUb3qKKYf0pQi138U036ncgZzXLFO1lsvGfCNFvc8HsbfSPd7dE9KydsspFseX2XJ04oMUVzwaMT1E/s320/%25E6%2588%25AA%25E5%259C%2596+2021-02-16+%25E4%25B8%258B%25E5%258D%258810.28.16.png) |
push 完成後,更新 Remote Github版本,標籤會重新對上 |
Check out Github 上的專案到 Android Studio
會遇到 Check out 的狀況,可能是分配到去維護舊的專案或是需要去維修特定專案的 Bug 等,有兩個方式可以把整個專案 Checkout 下來.
1. 關閉專案,透過 Android Studio Welcome 選單
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEji9hvff3wECKgHWp7gQDT0VoWkOCPFC5L_HnOhBDLUuHpljTFyZpu7shkMx8IEwQmBybT55ejIv09Fr4kyh511K6UtOupCbwyDkFOmuCGWiUlAgJXscoz5g9izR18npzK0-36-MFpn2Aw/s320/%25E6%2588%25AA%25E5%259C%2596+2021-02-16+%25E4%25B8%258B%25E5%258D%258810.35.24.png) |
選擇 Get From Version Control |
2. 透過 New File 方式
留言
張貼留言