之前文章中小白講了本地倉庫和工作區之間的基本操作,這篇博客小白整了了一下遠程庫的一些操作。
首先,確認自己已經申請了GitHub且有了.ssh文件,由於小白之前已經都操作完了,這裏就不再重新來一遍,過程很簡單,可以任意百度,輕鬆找到方法。
下面是小白電腦中已經存在的內容,其中id_rsa是私鑰,id_rsa.pub是公鑰,私鑰不可外傳,公鑰可以。其中公鑰的內容我們下一步要用到。
有了這個基礎後,就可以在自己的GitHub中,創建SSH Key
按照下圖打開工具中的settings
進入到下面頁面:
點擊add ssh key就可以創建一個名字,下面是小白之前創建的title爲gongyao,key文本框中粘貼id_rsa.pub文件的內容即可。
創建好後就如上圖了。
創建好後,就可以添加遠程庫了。我們本地已經創建了Git倉庫,現在在GitHub創建一個Git倉庫,讓這兩個倉庫遠程同步。
1.創建一個新的倉庫
點擊+號圖標,選中藍色標識,然後在新的頁面中填入要創建的名稱,這裏小白填入和本地一樣的倉庫名稱,其他無需修改,直接點擊create repository按鈕即可
下面就是新建好的初始頁面:
上圖提示告訴我們,可以從這個倉庫克隆出新的倉庫。
2.把本地庫的內容推送到遠程,使用 git push命令,實際上是把當前分支master推送到遠程。
根據提示,在本地的mygittest倉庫運行命令:
由於遠程庫是空的,我們第一次推送master分支時,加上了 –u參數,Git不但會把本地的master分支內容推送的遠程新的master分支,還會把本地的master分支和遠程的master分支關聯起來,在以後的推送或者拉取時就可以簡化命令。推送成功後,可以立刻在github頁面中看到遠程庫的內容已經和本地一模一樣了,上面的要輸入github的用戶名和密碼如下所示:
上面操作都完成後,之後如果本地做了提交,就可以通過命令:
把本地master分支的最新修改推送到github上了,真正的分佈式版本庫行程了。
git push origin master
比如下面的一個更新,更新到遠程庫,可以看下小case:
此時頁面刷新就更新了:
3.從遠程庫克隆
上面我們瞭解了先有本地庫,後有遠程庫時候,如何關聯遠程庫。如果遠程庫有新的內容了,我想克隆到本地來 如何克隆呢?
如果我們在myfirstgit.txt再增加一行,保存。
更新後頁面如下:
克隆這個文檔:
4.創建和合並分支
從上篇博文中,我們可以知道,每次提交,Git都把每次記錄串成一條時間線,這條時間線就是一個分支。截止到目前,只有一條時間線,在Git裏,這個分支叫主分支,即master分支。HEAD嚴格來說不是指向提交,而是指向master,master纔是指向提交的,所以,HEAD指向的就是當前分支。
首先,我們來創建br1分支,然後切換到br1分支上。如下操作:
git branch查看分支,會列出所有的分支,當前分支前面會添加一個星號。
可以看到有兩個分支,一個master,一個br1,當前在br1分支。
上面的創建並切換分支,也可以用下面命令完成:
首先,查看下現在myfirstgit.txt內容,接着添加一條數據:
在br2上增加:
上述添加br2分支工作就當完成了,現在切換到主分支master上,繼續查看文件內容:
可以看到主分支的內容並沒有更改
現在把分支上的內容合併到主分支master上:
可以看到增加了一條記錄到文檔在中
git merge命令用於合併指定分支到當前分支上
注意下Fast-forward信息,Git告訴我們,這次合併是“快進模式”,也就是直接把master指向br2的當前提交,所以合併速度非常快。
合併完成後,我們可以接着刪除br1、br2分支了,操作如下:
當前就只有一個master分支了
5.如何處理分支修改衝突?
1.首先創建並切換br1分支
2.查看修改前後的文件
3.提交
4.切換到master分支
5.查看修改前後的文件
6.提交
7.在master上合併br1,如下:
在合併是產生了衝突報警,查看狀態如下:
8.查看文件內容
衝入內容如下圖
Git用<<<<<<<,=======,>>>>>>>標記出不同分支的內容,其中<<<HEAD是指主分支修改的內容,>>>>>br1是指br1上修改的內容,此時我們可以修改分支上的內容和主幹一致(在文件夾中修改成和主幹一樣的內容):
查看修改的內容:
然後將該文檔上傳
合併分支,查看狀態,發現已經完成合並啦~