git協同開發

一、Git遠程倉庫

GitHub是一個免費的服務器,這個網站就是提供Git倉庫託管服務的,所以,只要註冊一個GitHub賬號,就可以免費獲得Git遠程倉庫。

注意GitHub上免費託管的Git倉庫,任何人都可以看到,而能免費創建的私有項目是有限的。

1、創建SSH Key

步驟1、下載安裝git,前面的文章已經介紹過,不再這裏重複。
步驟2、在本地電腦用戶目錄下,鼠標右鍵git bash here
在這裏插入圖片描述
步驟3、執行命令:ssh-keygen -t rsa -C "[email protected]" ,如果是第一次生成 回車3次就可以了,根據自身配置。
在這裏插入圖片描述
然後到用戶目錄下的.ssh目錄下,裏面有id_rsa和id_rsa.pub兩個文件,這兩個就是SSH Key的祕鑰,id_rsa是私鑰,id_rsa.pub是公鑰。
步驟4、登陸GitHub,打開“Account settings”,“SSH and GPG keys”頁面:
在這裏插入圖片描述
然後,點“New Ssh key”,填上任意Title,在Key文本框裏粘貼id_rsa.pub文件的內容
在這裏插入圖片描述

那麼此時表示已經和GitHub之間建立好了一個安全鏈接。由於ssh存在,GitHub才能進行用戶識別。GitHub允許你添加多個Key。

2、創建遠程倉庫

步驟1、首先,登陸GitHub,然後,在右上角找到“new repository”按鈕,創建一個新的倉庫。
在這裏插入圖片描述
步驟2、在Repository name填入dongnaoGit,其他保持默認設置,點擊“Create repository”按鈕,就成功地創建了一個新的Git倉庫.
在這裏插入圖片描述
現在設置的倉庫名稱爲myTest,倉庫創建完成之後會給出兩種鏈接方式
a: https://github.com/meture/myTest.git
b: [email protected]:meture/myTest.git
使用https除了速度慢以外,還有個最大的麻煩是每次推送都必須輸入口令,但是在某些只開放http端口的公司內部就無法使用ssh協議而只能用https。
步驟3、關聯遠程倉庫
目前,在GitHub上的這個myTest倉庫還是空的,GitHub告訴我們,可以從這個倉庫克隆出新的倉庫,也可以把一個已有的本地倉庫與之關聯。現在,把GiuHub與本地倉庫關聯,在本地的myTest倉庫下運行命令

$ git remote add origin [email protected]:meture/myTest.git

遠程庫倉庫的名字就是origin,這是Git默認的叫法,也可以改成別的,此時已經和遠程倉庫建立了鏈接,但是遠程倉庫裏面並沒有本地倉庫的內容。
在這裏插入圖片描述

3、推送本地內容到遠程倉庫上

$ git push -u origin master

把本地庫的內容推送到遠程,用git push命令,實際上是把當前分支master推送到遠程。
由於遠程庫是空的,我們第一次推送master分支時,加上了-u參數,Git不但會把本地的master分支內容推送的遠程新的master分支,還會把本地的master分支和遠程的master分支關聯起來,在以後的推送或者拉取時就可以簡化命令爲$ git push origin master
在這裏插入圖片描述
遠程倉庫內容就和本地的一樣了:
在這裏插入圖片描述
tips:當你第一次使用Git的clone或者push命令連接GitHub時,會得到一個警告:

The authenticity of host 'github.com (xx.xx.xx.xx)' can't be established. 
RSA key fingerprint is xx.xx.xx.xx.xx. 
Are you sure you want to continue connecting (yes/no)?

這是因爲Git使用SSH連接,而SSH連接在第一次驗證GitHub服務器的Key時,需要你確認GitHub的Key的指紋信息是否真的來自GitHub的服務器,輸入yes回車即可。這個警告只會出現一次,後面的操作就不會有任何警告了。

4、從遠程庫克隆

之前先有本地庫,在創建遠程倉庫,然後再從本地push到遠程庫。現在先有遠程倉庫,要把遠程庫克隆到本地呢。

首先,找到我們要克隆的目標項目(或者自己新建一個),然後用命令git clone克隆一個本地庫,我們先進入本地電腦I:\git目錄(原來裏面有沒有文件無所謂),
在這裏插入圖片描述鼠標右鍵git bash here,
在這裏插入圖片描述
從GitHub上覆制遠程倉庫地址,執行命令:

$ git clone [email protected]:meture/lgyTest.git

在這裏插入圖片描述
成功把GitHub上我創建的項目lgyTest克隆到本地,並且會創建一個和GitHub上項目名一樣的文件夾,在文件夾裏面會創建本地倉庫,並把遠程倉庫的內容都下載到本地
在這裏插入圖片描述

在這裏插入圖片描述
3 再嘗試下提交文件到遠程倉庫,
添加文件,修改內容,進入lgyTest目錄,鼠標右鍵git bash here,把新的內容commit到本地倉庫後push到遠程倉庫
在這裏插入圖片描述

5、其他操作

提交本地修改到遠程倉庫

要提交到遠程倉庫之前,必須要先commit到本地倉庫,遠程倉庫才能接收得到。命令是

$ git push origin master

使用https建立一個test遠程倉庫

$ git remote add test  https://github.com/xxxxx/myTest.git

查看遠程倉庫信息,如果沒有推送權限,就看不到push的地址。

$ git remote  &&  $ git remote -v

切換遠程倉庫

$ git remote set-url origin [email protected]:xxxxx/dongnaoGit.git

刪除遠程倉庫

$ git remote rm  test

二、協同開發

當有兩個人在同一個分支下對文件做了修改,第一個人肯定是能順利先push到遠程倉庫的,但是第二個人必須在push之前先把其他人的更新抓取到本地,不管有沒有衝突都必須如此,有衝突解決衝突,然後在push到遠程倉庫。

$ git fetch <遠程主機名> //這個命令將某個遠程主機的更新全部取回本地
$ git fetch <遠程主機名> <分支名> //取回特定分支的更新,可以指定分支名

執行fetch取回服務器的更新
在這裏插入圖片描述
通過git log –p FETCH_HEAD查看更新信息
在這裏插入圖片描述

補充:
不同人對同一個分支修改時,即使是改同一個文件,只要不改同一文件的同一行,就不會有衝突。

三、標籤

發佈一個版本時,我們通常先在版本庫中打一個標籤(tag),這樣,就確定了打標籤時刻的版本。將來無論什麼時候,取某個標籤的版本,就是把那個打標籤的時刻的歷史版本取出來。所以,標籤也是版本庫的一個快照。

Git的標籤雖然是版本庫的快照,但其實它就是指向某個commit的指針(但是分支可以移動,標籤不能移動),所以,創建和刪除標籤都是瞬間完成的。
在這裏插入圖片描述
在Git中打標籤非常簡單,首先,切換到需要打標籤的分支上,執行命令

$ git tag xxxx

默認標籤是打在最新提交的commit上的。如果想在之前的commit上打標籤,先找到歷史提交的commit id,然後打上就可以了:
在這裏插入圖片描述

$ git tag 標籤名 commit id

例如

$ git tag v0.9 67cda3

可以用命令git tag查看所有標籤,還可以創建帶有說明的標籤,用-a指定標籤名,-m指定說明文字:

 $ git tag -a 標籤名 -m “說明" commit id

查看標籤信息

$ git show xxx

本地標籤刪除

$ git tag -d xxxx

推送本地標籤到遠程倉庫

$ git push origin xxxx

推送全部尚未推送到遠程的本地標籤

$ git push origin --tags

刪除遠程倉庫標籤
先刪除本地標籤$ git tag -d xxxx ,從遠程刪除 $ git push origin :refs/tags/xxxxxx

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章