RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

git分支應用和多人協(xié)作

嵌入式技術 ? 來源:嵌入式技術 ? 作者:嵌入式技術 ? 2022-09-19 09:00 ? 次閱讀

git分支應用和多人協(xié)作

1.知識百科

Git(讀音為/g?t/)是一個開源的分布式版本控制系統(tǒng),可以有效、高速地處理從很小到非常大的項目版本管理。 也是Linus Torvalds為了幫助管理Linux內(nèi)核開發(fā)而開發(fā)的一個開放源碼的版本控制軟件。

git 包含了完善的客戶端和服務端,客戶端和服務端之間通過某種安全通信 協(xié)議(HTTPS 或者 SSH)進行文件的上傳和下載。

git工具安裝和基本使用參考:https://blog.csdn.net/weixin_44453694/article/details/123999289

poYBAGMnL7CAYiZHAAE4W-Vdanw928.png#pic_center

2.git分支

分?就是科幻電影??的平?宇宙,當你正在電腦前努?學習Git的時候,另?個你正在另?個平?宇宙?努?學習SVN。兩者之間可以同時執(zhí)行。

分?在實際中有什么?呢?假設你準備開發(fā)?個新功能,但是需要兩周才能完成,第?周你寫了50%的代碼,如果?刻提交,由于代碼還沒寫完,若直接提交則會導致代碼不完整影響其他人工作。但若等所有代碼寫完再一次性提交,?存在丟失每天進度的巨??險。而有了分支的產(chǎn)生,就可以創(chuàng)建一個屬于自己的分支,只有自己才能看到分支內(nèi)容,別?看不到,還繼續(xù)在原來的分?上正常?作,?你在??的分?上干活,想提交就提交,直到開發(fā)完畢后,再?次性合并到原來的分?上,這樣,既安全,又可以多人協(xié)作開發(fā),互不影響。

在沒有分支之前,master分?是?條線,Git?master指向最新的提交,再?HEAD指向master,就能確定當前分?,以及當前分?的提交點:

pYYBAGMnL7CAFdjSAABvcwBxRks621.png#pic_center

??每次提交,master分?都會向前移動?步,這樣,隨著你不斷提交,master分?的線也越
來越?。
??當我們創(chuàng)建新的分?,例如dev時,git新建了?個指針叫dev,指向master相同的提交,再把HEAD指向dev,就表?當前分?在dev上:

poYBAGMnL7CAE4YXAABpy-4XYGo047.png#pic_center

??當有了dev分支,我們就可以通過改變HEAD指向來操作不同分支,當HEAD指向dev分支時則只能操作dev。當我們工作完成后,就可以將master和dev分支合并,即直接讓master指向dev提交分支。甚至可以直接刪除dev分支。

poYBAGMnL7CAK9gtAABZcnbz6k4656.png#pic_center

3.創(chuàng)建分支

$ git branch dev //創(chuàng)建分支
$ git checkout dev //切換分支
$ git branch  //查看分支
* dev  
  master
$ git branch -d dev //刪除分支
$ git checkout -b dev //創(chuàng)建一個分支dev,并切換到當前分支下

??*表示當前所處于的分支位置。

3.1 創(chuàng)建分支示例

$ touch 1.txt //創(chuàng)建新文件
$ git checkout -b dev  //創(chuàng)建dev分支并切換當當前分支下
$ git add 1.txt //添加1.txt
$ git commit -m "分支應用實例"  //編寫提交說明
[dev 8873ebd] 分支應用實例
 1 file changed, 1 insertion(+)
 create mode 100644 1.txt
$ git push origin dev  //提交到dev分支
pYYBAGMnL7GAGbbtAABt5V2raNE450.png#pic_centerpYYBAGMnL7GAT6Q9AAHNRwAYGXI750.png#pic_center

3.2 合并分支并提交

$ git checkout master //切換到主分支
$ git merge dev  -m "分支合并" //合并分支,將dev分支合并到主分支
更新 38d25e9..8873ebd
Fast-forward
 1.txt | 1 +
 1 file changed, 1 insertion(+)
 create mode 100644 1.txt
poYBAGMnL7GAHyJTAAGDRSX_vGU885.png#pic_center
$ git add -A
$ git push origin master //將合并內(nèi)容提交到主分支

??合并并且提交到主分支成功后則可刪除dev分支

$ git branch -d dev 
已刪除分支 dev(曾為 8873ebd)。

4.分支沖突問題

4.1 創(chuàng)建dev分支并提交

$ git checkout -b dev  //創(chuàng)建分支并切換到dev分支下
$ vim 1.txt  //打開1.txt 添加內(nèi)容
git 分支測試
git 分支沖突測試
$ git add 1.txt  //添加1.txt
$ git commit -m "分支沖突測試"  
$ git push origin dev  //提交到dev分支
pYYBAGMnL7GAcSFgAABv2dYHUnI463.png#pic_center

4.2 修改主分支并提交

$ git checkout master //切換到主分支
$ vim 1.txt //修改1.txt文件
git 分支測試
主分支測試
$ git add 1.txt 
$ git commit -m "主分支提交測試"
$ git push origin master  //修改內(nèi)容提交到主分支
poYBAGMnL7KAOZ7DAABj0uRXICs248.png#pic_center

4.3 合并分支

$ git merge dev -m "分支合并" //合并分支
自動合并 1.txt
沖突(內(nèi)容):合并沖突于 1.txt
自動合并失敗,修正沖突然后提交修正的結果。
$ git status  //查看狀態(tài)
位于分支 master
您的分支與上游分支 'origin/master' 一致。

您有尚未合并的路徑。
  (解決沖突并運行 "git commit")
  (使用 "git merge --abort" 終止合并)

未合并的路徑:
  (使用 "git add <文件>..." 標記解決方案)

	雙方修改:   1.txt

修改尚未加入提交(使用 "git add" 和/或 "git commit -a")

??打開1.txt文件可查看到主分支和dev分支的修改內(nèi)容。

pYYBAGMnL7KAam6qAAC6M5d48SM158.png#pic_center

??由于主分支和dev分支都對1.txt文字做出修改,導致分支自動合并失敗,此時就需要手動解決分支沖突問題。我們打開1.txt文件就可以看到主分支和dev分支的修改狀況,我們需要手動合并。

?當我們在合并分支時,遇到自動合并失敗,則可以通過git status 查看狀態(tài)信息,查看出現(xiàn)合并失敗的問題文件,然后收合并分支,再次添加提交文件,編寫提交說明重新提交即可。
在實際開發(fā)中,我們應該按照?個基本原則進?分?管理: ?先,master分?應該是?常穩(wěn)定的,也就是僅?來發(fā)布新版本,平時不能在上?干活; 那在哪干活呢?干活都在dev分?上,也就是說,dev分?是不穩(wěn)定的,到某個時候,?如 1.0版本發(fā)布時,再把dev分?合并到master上,在master分?發(fā)布1.0版本; 你和你的?伙伴們每個?都在dev分?上干活,每個?都有??的分?,時不時地往dev分 ?上合并就可以了。
所以,團隊合作的分?看起來就像這樣:

pYYBAGMnL7KAWILyAADcZJ_N19Y807.png#pic_center

5.多人協(xié)作

??Git是一個開源的分布式版本控制系統(tǒng),可以有效的完成版本管理和多人協(xié)作開發(fā)。要實現(xiàn)多人協(xié)作則需要在服務器端添加協(xié)作人員。
??在倉庫管理中可以添加開發(fā)者人員,設置代碼審核人員和分支合并審核。

poYBAGMnL7KABzczAAEtGyXvC8E218.png#pic_center

審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 控制系統(tǒng)

    關注

    41

    文章

    6604

    瀏覽量

    110574
  • 開源
    +關注

    關注

    3

    文章

    3309

    瀏覽量

    42471
  • Git
    Git
    +關注

    關注

    0

    文章

    198

    瀏覽量

    15755
收藏 人收藏

    評論

    相關推薦

    關于git的遠程分支的詳細介紹

    不知道大家有沒有經(jīng)歷過,當我們切換到了一個新的分支想要提交代碼的時候,總會遇到這樣的錯誤。 我們把日志里的英文翻譯過來是說,我們當前的分支沒有設置任何上游分支。然后git提示我們可以運
    的頭像 發(fā)表于 10-11 10:03 ?3217次閱讀
    關于<b class='flag-5'>git</b>的遠程<b class='flag-5'>分支</b>的詳細介紹

    Git命令之本地分支與遠程分支關聯(lián)和解除

    在實際的工作生活中,往往需要將本地的分支和遠程分支關聯(lián),這樣我們就可以使用git pull命令來更新拉取最新的代碼,并使用git push命令將自己本地的修改推送到遠程倉庫。但是如果此
    的頭像 發(fā)表于 12-15 09:27 ?3230次閱讀
    <b class='flag-5'>Git</b>命令之本地<b class='flag-5'>分支</b>與遠程<b class='flag-5'>分支</b>關聯(lián)和解除

    【AD系列教程】多人PCB協(xié)作設計

    一、 前言在使用Altium Designer進行PCB工程繪制時,大家都希望可以多人協(xié)作對一個PCB工程進行設計與檢查。 以往大家的做法往往是將整個PCB工程文件復制給別人,讓別人在自己的電腦上進
    發(fā)表于 12-05 15:15

    git簡單使用(一)

    倉庫,以及如何進行分支控制:1.創(chuàng)建一個文件夾mkdir git-study2.初始化倉庫git init3.查看下當前分支git bran
    發(fā)表于 02-17 16:18

    AD多人協(xié)作pcb設計

    AD10多人協(xié)作參數(shù)設置過程詳解
    發(fā)表于 08-28 09:23

    Git分支,為何以及如何使用分支

    file.txt 之間的三個方塊展示每個分支所在的位置(或者說每個分支中的最后一次提交的位置)。由于 myBranch 剛創(chuàng)建,提交狀態(tài)與 master 分支及其對應的記為 remotes/origin
    的頭像 發(fā)表于 06-11 11:08 ?4014次閱讀

    Git Flow應該拋棄的原因

    Git-flow 是一種分支和合并方法。十年前,因為一篇名為「一個成功的 Git 分支模型」的文章,Git-flow 變得廣為人知。
    的頭像 發(fā)表于 03-21 13:41 ?1500次閱讀
    <b class='flag-5'>Git</b> Flow應該拋棄的原因

    Git最佳實踐,什么才是最佳工作流

    知道相比于 Svn,Git 最牛的地方在于它的分支分支很靈活,但是如果缺乏一個使用套路,又會用的亂糟糟的,特別是在團隊協(xié)作中,該怎么玩 Git
    的頭像 發(fā)表于 02-21 17:59 ?1532次閱讀

    利用Learn Git Branching輕松學習Git

    托管網(wǎng)站,與他人協(xié)作管理推進開源項目必須要掌握的工具。 而Git中的常用操作,雖然上手難度低,但涉及到細節(jié)處尤其是多分支操作,難免會讓很多新手犯糊涂,今天我就給大家推薦一個開源項目,幫助使用者在輕松游戲的過程中熟練掌握
    的頭像 發(fā)表于 09-15 14:53 ?1563次閱讀

    Git / GitHub 是什么?有什么用?

    分支Git 里很重要的概念,大家可以使用 Learning Git Branching 這個在線游戲來學習和理解分支
    發(fā)表于 12-09 09:39 ?940次閱讀

    如何設置Git的SSH秘鑰

    現(xiàn)在使用Git工具的人是越來越多了,許多的公司或組織都使用了Git進行代碼的保存、項目管理、多人協(xié)作開發(fā)等,應用的也是越發(fā)的廣泛了。我個人的使用感覺來看,以前也是用SVN進行代碼托管,
    的頭像 發(fā)表于 02-10 11:30 ?1873次閱讀
    如何設置<b class='flag-5'>Git</b>的SSH秘鑰

    Git分支管理

    在項目的開發(fā)過程中,很多時候都會使用Git托管工具進行項目文件或者代碼的管理,方便團隊成員之間的協(xié)作開發(fā)。使用Git進行項目管理目前也是越來越受到歡迎,除了Git還有很多的其他項目管理
    的頭像 發(fā)表于 02-20 14:49 ?1028次閱讀
    <b class='flag-5'>Git</b>的<b class='flag-5'>分支</b>管理

    git rebase與相關git merge命令比較

    。 #概念 ????首先要理解的是git rebase和git merge解決了同樣的問題。這兩個命令都旨在將更改從一個分支集成到另一個分支 - 它們只是以不同的方式進行。試想一下當你
    的頭像 發(fā)表于 05-26 16:22 ?876次閱讀
    <b class='flag-5'>git</b> rebase與相關<b class='flag-5'>git</b> merge命令比較

    git rebase和git merge的區(qū)別

    ? 解決沖突 git rebase和git merge的區(qū)別 分支合并 git merge是用來合并兩個分支的。 比如:將 b
    的頭像 發(fā)表于 07-05 09:54 ?638次閱讀
    <b class='flag-5'>git</b> rebase和<b class='flag-5'>git</b> merge的區(qū)別

    git切換遠程地址分支方式

    git remote set-url origin URL】 更換遠程倉庫地址,URL為新地址。
    的頭像 發(fā)表于 12-18 09:35 ?2499次閱讀
    RM新时代网站-首页