一、Git多分支及遠端倉庫
1.Git多分支
首先要搞明白什麼是多分支? 為什麼要多分支? 接下來回答一下這兩個問題吧!首先分支就是一個倉庫的字型檔;多分支可以保證主分支的版本都是可以檢視的版本、我們都在開發分支開發,開發完成,合併到主分支。
#分支操作的詳細步驟
第一步:分支檢視 git branch
第二步:分支建立 git branch dev
branch後面寫分支的名稱,比如dev(develop,即開發分支),dev指的是要建立的分支名字
第三步:分支切換 git checkout dev
切換的關鍵字是checkout,checkout後面寫要切換的分支名字(dev)
第四步:分支刪除 git branch -d dev
需要注意的是:在dev分支上不能刪除dev分支,需要先切換到master分支上執行刪除命令
分支合併
以上都是在本地操作;接下來要研究的是遠端操作!
2.正常密碼連結遠端倉庫
把本地的版本提交到遠端倉庫比如說(gitee,github,gitlab。。。。),本篇文章以Gitee為例講解此過程,提供一下gitlab的搭建過程https://zhuanlan.zhihu.com/p/413217715
因為路飛專案寫好了一部分板塊,按照敏捷開發的思路,完全可以管理程式碼,以下是具體步驟
-------------------------------------------------------------------開始--------------------------------------------------------------
在本地
第一步:在luffy_api 敲git init
tips:避免操作過程中不小心丟失專案檔案,最好複製一份用來練習題材
第二步:設定忽略檔案(.gitignore)
這是忽略檔名大全,我自己沒有完全寫好就提交到版本庫了,也不想來來回回,想著在筆記裡面總結一下
第三步:執行提交暫存區和版本庫的命令
git add .
git commit -m '第一次提交'
------------提交到了本地版本庫 被版本管理了------------
在遠端
第一步:遠端要建立倉庫:gitee上建立倉庫,右上角 +
第二步:填寫一些基本資訊,下面的是建立倉庫需要填寫資訊的詳細講解
最後不要勾選初始化倉庫和設定模板
開發者模式設定為master/develop模式
要保證倉庫是空的即可
再回到本地
第一步:設定設定郵賬戶和郵箱
git config --global user.email "3014885197@qq.com"
git config --global user.name "Almira998"
第二步:遠端新增原始碼
# 新增一個遠端倉庫地址名字叫origin,地址是xxx
git remote add origin https://gitee.com/almira998/luffy_api.git
# 把本地當前所在分支,推送到 origin對應的遠端的master上
git push origin master
倉庫地址在圖裡面提示找就行
說明密碼遠端提交成功
-------------------------------------------------------------------結束--------------------------------------------------------------
3.ssh公鑰私鑰方式連結遠端倉庫
首先回顧一下什麼是SSH吧 !SSH(Secure Shell),由 IETF 的網路小組(Network Working Group)所制定;SSH 為建立在應用層基礎上的安全協議。SSH 是較可靠,專為遠端登入會話和其他網路服務提供安全性的協議。利用 SSH 協議可以有效防止遠端管理過程中的資訊洩露問題。SSH最初是UNIX系統上的一個程式,後來又迅速擴充套件到其他操作平臺。SSH在正確使用時可彌補網路中的漏洞。SSH客戶端適用於多種平臺。幾乎所有UNIX平臺—包括HP-UX、Linux、AIX、Solaris、DigitalUNIX、Irix,以及其他平臺,都可執行SSH。傳統的網路服務程式,如:ftp、pop和telnet在本質上都是不安全的,因為它們在網路上用明文傳送口令和資料,別有用心的人非常容易就可以截獲這些口令和資料。而且,這些服務程式的安全驗證方式也是有其弱點的, 就是很容易受到“中間人”(man-in-the-middle)這種方式的攻擊。所謂“中間人”的攻擊方式, 就是“中間人”冒充真正的伺服器接收你傳給伺服器的資料,然後再冒充你把資料傳給真正的伺服器。伺服器和你之間的資料傳送被“中間人”一轉手做了手腳之後,就會出現很嚴重的問題。透過使用SSH,你可以把所有傳輸的資料進行加密,這樣"中間人"這種攻擊方式就不可能實現了,而且也能夠防止DNS欺騙和IP欺騙。使用SSH,還有一個額外的好處就是傳輸的資料是經過壓縮的,所以可以加快傳輸的速度。SSH有很多功能,它既可以代替Telnet,又可以為FTP、PoP、甚至為PPP提供一個安全的"通道"。SSH協議框架中設計了大量可擴充套件的冗餘能力,比如使用者自定義演算法、客戶自定義金鑰規則、高層擴充套件功能性應用協議。這些擴充套件大多遵循 IANA 的有關規定,特別是在重要的部分,像命名規則和訊息編碼方面。SSH採用面向連線的TCP協議傳輸 應用22號埠 安全係數較高。
產生金鑰的步驟
第一步:訪問瀏覽金鑰產生網址
第二步:獲取產生金鑰的命令ssh-keygen -t ed25519 -C "3014885197@qq.com"
第三步:在Gitee裡的ssh部分配置公鑰
這樣就配置完公鑰了,接下來重新提交到遠端,之後不用填寫賬號和密碼了,一路綠燈
第四步:在倉庫位置找克隆與下載按鈕,然後ssh對應的地址複製下來
第五步:重新設定ssh地址提交地址,就完成了ssh方式遠端提交程式碼的操作
三、協同開發及解決衝突
1.協同開發
第一步:倉庫管理員,邀請開發者進入>>>:邀請的開發者,對這個倉庫就有讀寫許可權,他們就可以開發程式碼,提交
第二步:作為開發者,本地沒有程式碼
第三步:把程式碼從遠端倉庫 clone 下來
git clone git@gitee.com:liuqingzheng/luffy_api.git
第四步:使用pycharm開啟,配置好直譯器,安裝依賴
第五步:開發程式碼,terminal依次敲如下程式碼
git add
git config --global user.email "3014885197@qq.com"
git config --global user.name "米熱"
git config user.name lqz
git config user.email 3@qq.com
git commit
git push origin master
2.解決衝突
出現衝突的原因
多人在同一分支開發
避免衝突的原則
你如果想少出現衝突>>>:勤拉取程式碼(git pull origin dev)
衝突出現的樣子:
你如果要刪除別人的程式碼,你需要跟別人說一聲
<<<<<<< HEAD 我的程式碼
print('劉亦菲')
======= 它的程式碼
print('彭于晏')
>>>>>>> 6f720edbd84c8744b1c7c10767fb89a5d0fa98f5
解決衝突的方法
箭頭去掉,閱讀程式碼,選擇保留或刪除別人或自己的程式碼,再提交
四、線上分支合併及遠端倉庫回滾
1.線上分支合併
gitee上,新建一個分支
本地同步遠端dev分支
git pull origin dev # 拉下來了,還看不到,只有切過去,才看的導
git checkout dev
在dev上開發
隨便加程式碼
git add
git commit
提交到本地的dev了
git push origin dev # 推到遠端 dev
master中沒有程式碼,dev中有提交的,現在要線上分支合併
把遠端的dev合併進遠端的master
提交pr 提交rr
在網站上,申請提交pull request
領導稽核,測試,透過後,點選合併
線上dev就合併進線上的master了
2.遠端倉庫回滾
你不要用 因為遠端回滾指的是把遠端的程式碼回滾到最初的狀態,這是一個危險操作,原因是一旦回滾到最初狀就相當於之前所做的工作白費了,其實可以找回的但是這項工作是另一項費時間的體力活。非常麻煩,所我們們不要輕易地敲 【 -f 】
遠端倉庫回滾的操作步驟如下:
第一步:本地版本回退
git reset --hard 版本號
第二步:強行推到遠端
git push origin master -f
五、為開源專案貢獻程式碼
# github,gitee 看到好的開源專案, 發現有bug,為他增加新功能---》你加入了程式碼---》想合併進開源專案,如何做
# 步驟:
1 先fork開源專案--》複製這個專案到我的倉庫中
2 clone下來,改程式碼,一路提交到遠端(我的)
3 提交pr,等作者同意
六、pycharm使用git的教程
只要用命令操作的,都可以點選完成(命令都可以封裝成圖形化介面),pycharm使用gitgit的大前提是按照如下圖配置值以下
詳細使用方法看下面的截圖