git中最常用的操作-push到遠程倉庫


創建遠程倉庫

Git 是一個分散型版本管理系統,但我們之前所做的實驗都是在本地倉庫中進行實驗的。接下來,我們將開始接觸遠在網絡另一頭的遠程倉庫。那么,什么叫遠程倉庫呢?遠程倉庫就是指與本地倉庫相對獨立的倉庫。我們可以把數據傳送到遠端倉庫中。以免需要時,可以在網絡中查看並clone下來。(關於clone的內容,我們將在下一篇筆記中進行討論)


那么接下來,我們現在GitHub上創建一個倉庫,並將該倉庫設置成為本地倉庫的遠程倉庫。


首先,登錄到自己的github當中,並點擊創建遠程倉庫的按鈕。



創建之后,我們需要設置遠程倉庫的倉庫名。這里的倉庫名,請盡量跟本地倉庫的名稱保持一致。(便於查看和管理)



請注意在創建倉庫時,請不要勾選 Initialize this repository with a README 選項。因為一旦勾選該選項,這里的遠程倉庫就會自動生成README文件,從創建之初便與本地倉庫失去了整合性。雖然到時也可以強制覆蓋,但為了防止這一情況發生還是建議不要勾選該選項,直接點擊創建倉庫(Create repository)即可。(這個不是硬性要求,根據實際情況來進行決定)


在本地倉庫中添加遠程倉庫 git remote add

在上述內容中,我們創建了在Github上的遠程倉庫。那么該遠程倉庫的路徑為:

  • git@github.com:個人github的用戶名/遠程倉庫名.git --中間無空格

那么,我們接下來就用 git remote add 命令將它設置成本地倉庫的遠程倉庫。格式以及命令如下:

$ git remote add 遠程倉庫的標識符(通常為origin) 遠程倉庫的路徑

$ git remote add origin git@github.com:gao79135/gxz.git

執行完上述的命令之后,顯示的結果如下:



按照上述的格式執行 git remote add 命令之后,git 會自動將 git@github.com:gao79135/gxz.git 遠程倉庫的名稱設置為origin(標識符)(標識符的名稱不僅限與origin,這個是隨意設置的)


將本地倉庫中當前分支(例:master)的內容,推送到遠程倉庫的master分支中

如果想讓當前分支(例:master)的內容,推送到遠程倉庫的master分支中。需要用到 git push 命令。現在,我們就來立即實驗一下(我們需要先進入到master分支中):

$ git push -u origin master        -- origin 代表遠程倉庫的標識符    master代表推送到遠程參數的master分支當中。

執行完該命令的結果如下:



按照如上的方式去執行git push命令,那么當前分支的內容就會被推送到遠程倉庫origin中的master分支。 -u 參數可以在推送的同時,將origin倉庫的master分支設置為本地倉庫當前分支的upstream(上游)。添加了這個參數以后,將來在當前分支中使用git pull 命令從遠程倉庫獲取內容時,本地倉庫的這個分支就可以直接從origin的master分支獲取內容,省去了額外添加參數的麻煩。並且,我們可還記得在先前的內容中,我們為我們的github添加了一個密鑰。那么,在這時密鑰的作用就顯現出來了:當所有人對你的github中的遠程倉庫進行操作時,都需要輸入私鑰。如果私鑰正確,就會繼續操作。如果輸入的私鑰不正確,則會終止你當前的操作。直到將私鑰輸入正確為止。這也是一種保護個人遠程倉庫被隨意篡改的安全措施。


將本地倉庫master分支的內容推送過去之后,我們可以很容易在網頁內看到遠程倉庫中所推送過來的master分支的內容。並且,這個分支的內容跟本地倉庫的master分支內容完全相同。

推送至遠程倉庫中的其它分支

除了 master 分支以外,遠程倉庫也可以創建其他分支。舉個例子,我們可以在本地倉庫中創建feature-D分支,並將它以同名的形式push至遠程倉庫。

$ git checkout -b feature-D

執行完上述的命令后,我們在本地倉庫中就創建了一個feature-D分支,現在將它push給遠程倉庫並保持分支名稱不變。(以達到在遠程倉庫中創建分支的效果,因此在遠程倉庫中創建分支是由本地倉庫中所push的分支決定的)(如果你設置了密鑰,那么下面的命令執行后也將會讓你輸入私鑰)

$ git push -u origin feature-D

執行結果如下:



現在,我們可以進入我們自己的github中,之后就能在我們自己的遠程倉庫中看到創建的feature-D分支了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM