Git代碼託管服務
Git中存在兩種類型的倉庫,即本地倉庫和遠程倉庫。那麼我們如何搭建Git遠程倉庫呢?我們可以藉助互聯網上提供的一些代碼託管服務來實現,其中比較常用的有GitHub、碼雲、GitLab等。
- gitHub( 地址:https://github.com/ )
是一個面向開源及私有軟件項目的託管平臺,因爲只支持Git 作爲唯一的版本庫格式進行託管,故名gitHub - 碼雲(地址: https://gitee.com/ )
是國內的一個代碼託管平臺,由於服務器在國內,所以相比於GitHub,碼雲速度會更快 - GitLab (地址: https://about.gitlab.com/ )
是一個用於倉庫管理系統的開源項目,使用Git作爲代碼管理工具,並在此基礎上搭建起來的web服務。
Github簡介
- github是一個git項目託管網站,主要提供基於git的版本託管服務
- github是一個基於git的代碼託管平臺, Git 並不像 SVN 那樣有個中心服務器。目前我們使用到的 Git 命令都是在本地執行,如果你想通過 Git 分享你的代碼或者與其他開發人員合作。 你就需要將數據放到一臺其他開發人員能夠連接的服務器上。
主要步驟:
1. 創建本地項目
創建一個 Git 目錄,執行git bash here。
進行初始化操作:執行完初始化後,會在該目錄生成 .git目錄。
執行以下兩行代碼:設置局部用戶簽名和郵箱,全局的需要在config後加 - - global
git config user.name "powerfulDN"
git config user.email "[email protected]"
2.提交代碼到本地庫
git add love.txt
git commit -m "love form zhangsanatguigu" love.txt
3. 登錄賬號到github,創建遠程倉庫
填寫創建倉庫信息
創建後出現倉庫地址,注意:點一下HTTPS,換下地址。
4.本地項目推送到遠程庫 GitHub上
給網址添加別名
在 .git 中的config 文件中就會增加此網址。
然後執行 ogit push <遠端代號> <本地分支名稱>
- <遠端代號> 是指遠程鏈接的代號
- <本地分支> 是指要提交的分支名字,比如master
- 例如:git push origin master
這樣就會提交到GitHub上去,期間會彈出GitHub用戶密碼登錄。
5. 從GitHub上克隆一個項目
登錄其他GitHub賬戶,搜索用戶,獲取倉庫連接
新創建個文件夾gitFirst,在文件夾中開一個 Git Bash Here
6. 修改信息
克隆下來的工程沒有賬戶信息,需要自己在創建一個用戶,但是不需要初始化了。
創建用戶,發現並不能創建,原因是你不在 .git 路徑下執行,
切換到 .git目錄,在創建用戶和郵箱。
7. 編輯文件,保存到暫存區,在保存到本地庫。
8.本地庫提交到遠程庫,權限不夠
1.注:
- clone會自動關聯遠端地址爲origin默認名稱,所以不需要git remote …
- 賬戶提交修改內容,訪問被拒絕.權限不夠.
- 以上對項目的操作方式,必須是項目的創建者或者合作伙伴。
- 合作伙伴添加方式如下圖: 在項目中點擊settings頁籤,然後點擊Collaborators,然後在文本框中搜索合作夥伴的郵箱或者賬號。點擊添加。
在邀請的夥伴消息會發送到郵箱,點擊。
這樣就會跳轉到GitHub頁面
如下說明合作成功。
這樣提交修改權限就OK了。
查看GitHub 修改結果。
9. 更新本地文件
查看文件內容。
協作衝突
在上傳或同步代碼時,由於你和他人都改了同一文件的同一位置的代碼,版本管理軟件無法判斷究竟以誰爲準,就會報告衝突,需要程序員手工解決。
首先,兩個用戶有用相同的版本工程,第一用戶修改了工程並提交。
代碼如下:
第二個用戶也修改了相同的文件並提交到遠程倉庫。
出現錯誤,版本衝突問題,解決辦法如下:
出現錯誤的用戶先pull(拉下來)就會有衝突,合併衝突,再push,OK
合併衝突之後,在再本地提交到本地倉庫。
注意提交到本地倉庫時是提交全部文件 git commit -m “提交說明” ,不能提交單獨的文件了。如下所示:
提交結果如下:
而衝突解決完後,主用戶只需要執行 git pull 工程路徑 分支名稱 即可
例如:git pull origin master
跨團隊協作
1.Fork
- 概念:
現在的情景是,用叉子把別人的東西(copy no cut)叉到你的碗裏~
就是把別人的項目clone一份,但是owner變成自己,這樣你就可以在遵守Open source license的前提下任意修改這個項目了。
相當於你在原項目的主分支上又建立了一個分支,你可以在該分支上任意修改,如果想將你的修改合併到原項目中時,可以pull request,
這樣原項目的作者就可以將你修改的東西合併到原項目的主分支上去,這樣你就爲開源項目貢獻了代碼,開源項目就會在大家共同的努力下不斷壯大和完善。
- 流程:(zhangsan和lisi是一個團隊的人,wangwu是另一個團隊的人)
第三方賬號登錄(wangwu),搜索某賬號找到某項目(zhangsan),然後點擊Fork按鈕,這樣就將該項目克隆一份到當前賬號(wangwu)內,然後進行修改,提交pull request,告訴對方(zhangsan)已經修改了,請求合併;
當前用戶登錄(zhangsan)後,可以看到小鈴鐺中的消息提醒,查看到pull request,然後,選擇合併或拒絕。
執行步驟:以zhangsan,wangwu 爲例
① [wangwu]獲取[zhangsan]的項目URL
②[wangwu]點擊[Fork],產生分支
③[wangwu]修改項目文件.(可以pull本地後修改,也可以在github上直接進行修改.)
④[wangwu]-> [New pull request]
⑤[wangwu]->[Create pull request]->[填寫pull request信息]
⑥分支已提交到主分支
⑦[zhangsan]和[lisi]都可以看到[wangwu]提交的項目內容.
⑧[zhangsan]合併項目,點擊[Merge pull request]->點擊[Confirm merge]
⑨[zhangsan]查看項目代碼,合併完成,OK
zhangsan和lisi 都執行$ git pull origin master,就可以下載到本地倉庫了。