你觉得这篇文章怎么样? 帮助我们为您提供更好的内容。
Thank you! Your feedback has been received.
There was a problem submitting your feedback, please try again later.
你觉得这篇文章怎么样?
作者 |
張嘉鈞 |
難度 |
普通 |
材料表 |
今天介紹分成「下載並修改已存在的repository」、「上傳全新的repository」兩個部分,並且也會針對常見的問題進行解說!
下載並修改已存在的repository
如果你像我一樣經常使用Visual Studio Code( VS Code) 又需要使用 Github來做版本控制或紀錄,現在兩家已經整合得很好了,VS Code甚至已經附帶著Git的插件。
接著我們可以直接複製存放庫 (repository),首先要先去Github取得網址
接著點選「複製存放庫」可以於上方輸入網址進行複製:
接著如果是第一次使用會有授權問題:
授權過了之後就會開始進行複製,接著只需要等待下載完就可以了:
一旦你在這個專案中對任何程式進行修改,VS Code就會自動偵測到並且將其標示為M ( Modified ):
如果是新增檔案的話則會以U來標記,是Untracked 的意思:
只要看到有被標記的符號,就代表有修正過的意思。我們在上傳至Github之前,需要先進行追蹤的動作,讓Git知道那些檔案有被異動過、是否要保留這些異動,「加入追蹤」就代表會暫時保留修改的內容,取消追蹤就會恢復上一個動作,那重點來了,要怎麼加入追蹤呢?
點選下圖較明亮的圖標會進到Git專屬的欄位,這邊可以看到有被動過的檔案都會顯示在這裡:
將滑鼠移到物件上點選「+」就可以進行追蹤,也可以直接移動到「變更」的位置進行一次性全部加入追蹤:
也可以點擊右鍵,選擇其他動作,與「+」相符的是「暫存變更」,這邊比較特殊的應該是「新增到.gitnore」如果檔案執行了這個動作則不會被上傳至Github上,後續會再實作到。
全部都丟到暫存之後可以注意到剛剛 test.md 的標記是U,現在已經變成A ( Added ) 了:
*** 題外話 ***
剛剛有提到放棄追蹤的部分,再這裡需要點選「捨棄變更」,我在檔案中新增了一些資訊,選擇「捨棄變更」之後剛剛更動的內容變會被刪除(回到上一次追蹤的狀態):
在剛剛的操作中可以注意到是「暫存」的變更,代表還沒完全認可,如果要認可的話需要點選提交 ( Commit ) 而提交的時候都需要附上版本資訊 ,因為Git本身就是在做版本控制的工具,強制每一次提交都需要附上註解,這樣才能落實版本控制。
我們可以透過 上方的 √ 符號進行提交,點擊之後會出現對話框可以輸入內容,我會建議使用英文來撰寫版本資訊:
認可後剛剛暫存的變更以及標記符號都被清除了,因為已經被加入追蹤:
最後就能把資料給上傳到Github上了,首先我們有進行了更動並且加入了註釋 ( 認可 ),所以現在VS Code自動偵測到有一個版本可以推送 ( Push ) 到 origin/master ( Branch ) 上面:
這邊有兩種方式可以上傳:
1.點擊狀態即可直接進行上傳。
2.在版控欄位點選「●●●」選擇推送或推送至。
如果是第一次進行推送會需要登入
接著回到Github上面,就可以看到剛剛新增的檔案了:
上傳全新的repository ( 正常流程 )
我先開啟了一個從未上傳至Github的專案,也沒有做過git版本控制
因為沒做過git版本控制,所以點選到git的欄位它會自動偵測到沒有.git檔案,按照它的敘述我們必須先進行初始化才能使用git相關的指令;如果我們使用命令來運作的話這個按鈕就代表git init的部分
點擊初始化按鈕之後就會產生一個.git檔案,這個檔案會存放版本控制的所有資料
VS Code也可以看到熟悉的變更欄位出現了
接著在開始其他動作以前,我們需要先到Github上去新增一個Repository:
接著可以回到VS Code當中去做遠端了,這邊教大家另一個方法,按下F1之後可以直接輸入指令動作:
我們要使用Git的指令,所以最前面是要呼叫「Git」,並且我們要進行遠端連線到該Repository,需要用的指令是「Add Remote」,中間會有「:」相隔:
我們可以像剛剛一樣直接輸入網址也可以從Github當中去選擇:
這次我選擇使用Github去挑選 ( 懶到一個極致 ) :
接著需要輸入你遠端的名稱,通常會寫做 origin,輸入完直接Enter就可以了:
接著要先確認一下Github上面是否已經有檔案存在了,像剛剛新增的時候我們有勾選README以及License:
如果已經有檔案的話我們需要先將資料給拉下來 ( pull ) 在進行推送 ( push ),如果直接進行上傳是會失敗的因為內容不相符,在這裡我自己經驗是需要選擇「從…提取」
並且選擇剛剛遠端的名稱:
選擇分支,第一次使用的話理論上只有一個,剛剛建立的遠端分支:
回到檔案總管的部分已經可以看到README、License了
接著我們回到git版本控制欄位進行追蹤以及提交的動作,這裡因為我的影片檔太大無法上傳,所以我將其放進 .gitignore當中:
加入到 .gitignore後就可以把所有檔案加入追蹤,可以注意到標記符號已經從U轉成A了:
最後記得要進行提交的動作,除了上面介紹的從中間的對話框輸入訊息,也可以直接在Git欄位上方撰寫版本資訊再進行提交,若提交成功該欄位則會清空
最後可以推送到github上面,這邊一樣選擇「推送至」
選擇剛剛遠端的分支:
重新整理Github網頁就可以發現檔案都已經上傳囉:
上傳全新的repository ( 快速 )
這邊選擇「發佈至GitHub」
會依照你的資料夾名稱來當作Repository的名稱:
最後
發現忘記放README.md了,我直接在VS Code裡新增並上傳,由於尚未被追蹤所以顯示為U,加入追蹤、提交等等就不贅述了:
由於已經有遠端了,也有上傳過一次,理論上已經有綁定分支就不用在使用「推送至」,這邊直接用「推送」即可:
重新整理就會出現剛剛修改的README.md:
結語
這邊教大家怎麼樣透過Github去上傳自己的專案,分兩種情境 ( 已存在Github專案、未存在Github專案 )教大家如何修改上傳、其中第二個情境又有分兩種上傳方法,基本流程版的使用方法會與使用git bash來上傳相似,只是變成圖形化介面;快速簡單版則是更直覺。希望大家都能夠好好經營自己的Github,對自己絕對有很大的幫助的!
對了,如果有需要多人協作則需要安裝插件,詳細可參閱https://code.visualstudio.com/docs/editor/github
常見問題
github push failed (remote: Permission to userA/repo.git denied to userB.)
我們可以點選「顯示Git輸出」來觀察錯誤訊息:
而我遇到的錯誤訊息大致上如下「github push failed (remote: Permission to userA/repo.git denied to userB.)」,查了一陣子資料才發現,我之前用公司的帳號登入使用過SSH導致Github以SSH優先導向了User B,也因為SSH是憑證形式所以就算我使用 git config 去修改也沒用。
這時候我們去控制台→Windows→使用者帳戶→管理Windows認證→Windows認證中刪除憑證 ( git : … ):