日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

git merge 冲突_卧槽!小姐姐用动画图解 Git 命令,这也太秀了吧?!

發(fā)布時(shí)間:2024/7/23 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 git merge 冲突_卧槽!小姐姐用动画图解 Git 命令,这也太秀了吧?! 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

公眾號關(guān)注?“GitHubDaily”

設(shè)為 “星標(biāo)”,每天帶你逛 GitHub!

大家好,我是小 G。

在座的各位應(yīng)該都知道,Git 作為居家必備、團(tuán)隊(duì)協(xié)作之利器,自從 Linus Torvalds 發(fā)布這款工具后,便一直受到各路開發(fā)者的喜愛。

不過,盡管如此,小 G 還是經(jīng)常能在公眾號后臺,看到有不少水友留言反饋,說 Git 里面太多干巴巴,看起來非常枯燥無味的命令行,一旦幾天沒用,就很容易就忘得一干二凈,希望 GitHubDaily 能出一些與 Git 相關(guān)的輔助教程,或者比較有趣、對小白比較友好的學(xué)習(xí)方式。

emmm.. 作為有求必應(yīng)的小 G,當(dāng)然是選擇盡可能滿足大家的一切要求啦。

幾天前,小 G 偶然在 Twitter 看到一篇文章:《CS Visualized: Useful Git Commands》。

作者是來自英屬哥倫比亞的小姐姐 Lydia Hallie,在這篇文章里面,她通過生動形象的動畫,以更加直觀的方式,向開發(fā)者展示 Git 命令中的 merge、rebase、reset、revert、cherry-pick 等常用騷操作的具體原理。

接下來,小 G 會挑選幾個(gè)最簡單的例子,讓你們看看這位小姐姐是如何用動畫來進(jìn)行展示的。

在開始之前,還是得先跟大家簡單說一下,這篇文章不算是針對小白萌新的 Git 初級入門文章,而是希望幫助有一定 Git 實(shí)操基礎(chǔ)的用戶,加深對具體 Git 命令的操作理解。

對 Git 不太熟悉的小伙伴,可看我們此前在公眾號上分享的這幾篇文章:

  • 強(qiáng)烈推薦下 GitHub 官方的這個(gè)教程

  • 收好這份 Git 命令應(yīng)急手冊,關(guān)鍵時(shí)刻可保你一命

  • 寓教于樂,用玩游戲的方式學(xué)習(xí) Git!

嗯,下面開始進(jìn)入正題。

合并(Merge)

我們都知道,在使用 Git 做日常開發(fā)項(xiàng)目的時(shí)候,都會選擇將項(xiàng)目切換成多個(gè)分支,在不同分支上處理不同事務(wù)。最簡單的,就是開發(fā)、測試、生產(chǎn)等幾個(gè)不同環(huán)境來回切換,使得項(xiàng)目管理與產(chǎn)品迭代更為輕松,亦可最大化避免項(xiàng)目出現(xiàn)嚴(yán)重漏洞時(shí)所帶來的傷害。

當(dāng)我們在不同分支開發(fā)完代碼后,會選擇將分支進(jìn)行合并(merge)。平時(shí)常用的 git merge 操作,又可分為這兩種類型:fast-forwar 和no-fast-forward。

fast-forward

一般情況下,Git 會默認(rèn)使用 fast-forward 這種類型來處理分支合并,當(dāng)我們成功合并后,不會產(chǎn)生任何提交記錄,且當(dāng)舊分支被移除后,其分支信息也會被一并刪除。

通過動畫的方式展示,就像下面這樣:

no-fast-forward

而當(dāng)我們使用 no-fast-forward 模式,即在合并分支命令加入 --no-ff 后綴的方式運(yùn)行時(shí),便會生成一個(gè)新的提交記錄,就像下面這樣:

合并沖突

在我們?nèi)粘_M(jìn)行團(tuán)隊(duì)協(xié)作開發(fā)的時(shí)候,總會出現(xiàn)同個(gè)文件在不同分支上被同時(shí)編輯的情況。

這樣,當(dāng)我們提交代碼的時(shí)候,比較晚提交的另一方,在運(yùn)行 Git 命令時(shí)就會報(bào)沖突錯(cuò)誤。在正常情況下,只要我們手動處理下沖突文件,然后再重新提交即可。

打個(gè)比方,現(xiàn)在代碼倉庫有個(gè) README 文件,在同一行的位置,在不同分支上被編輯了,如下所示:

那么,使用合并命令,及修復(fù)沖突的過程,用動畫的形式展示,看起來就像下面這樣:

可以看到,在移除多余的提示代碼后,會重新產(chǎn)生一條新的提交記錄。

Rebase

在進(jìn)行分支合并前,我們一般會先使用pull命令拉取線上的最新代碼,在保證無任何沖突發(fā)生的前提下,再進(jìn)行分支合并。但是,這種代碼拉取方式是最為簡單粗暴的,通過這種方式合并,會使得整個(gè)提交記錄看起來特別亂,不太直觀與優(yōu)雅。因此,對 Git 使用比較規(guī)范、追求比較高的程序員,都會先使用rebase整理下提交記錄,再提交代碼,經(jīng)過這樣處理后的 Git 提交記錄,看著就比直男還直了。以動畫的方式呈現(xiàn),就像下面這樣:可以清晰的看到,原本對接在 master 分支第二處的 dev 分支,被對接到頂部了。

Hard Reset

日常開發(fā)中,我們可能會因?yàn)樘峤涣四承o用代碼而進(jìn)行回滾操作。通常在只有一個(gè)人獨(dú)立開發(fā)的項(xiàng)目情況下,會選用--hard命令來進(jìn)行回滾處理。不過,這種操作方式有個(gè)不好的地方,在多人協(xié)作的時(shí)候,這么搞很容易使分支出現(xiàn)沖突,或直接毀掉別人的提交記錄。hard reset以動畫的形式表現(xiàn),看起來就像下面這樣:除此之外,小姐姐還提到了 Reverting、Cherry-picking、Fetch 等一系列操作,這里限于篇幅,就不跟大家一一講解啦。感興趣的同學(xué),可以查看小姐姐文章詳情:https://dev.to/lydiahallie/cs-visualized-useful-git-commands-37p1以上,就是今天跟大家的分享啦,最近也發(fā)現(xiàn)了幾個(gè)比較有意思的項(xiàng)目,小 G 正在把玩中,回頭玩的比較溜了,會在公眾號這邊撰文跟大家分享哈。擔(dān)心走丟的小伙伴,可以將 GitHubDaily 公眾號設(shè)為星標(biāo),我們下期再會。拜拜 ?。推薦閱讀:逛 GitHub 沒看過這 10 個(gè)開源項(xiàng)目,絕對血虧...霸榜 GitHub:去你丫的算法!臥槽!為鼓勵(lì)民眾居家隔離,國外這些計(jì)算機(jī)學(xué)習(xí)資源將免費(fèi)對外開放!全球呼吸機(jī)告急!醫(yī)療科技巨頭美敦力 "開源" 設(shè)計(jì)圖和源代碼!Eclipse Theia 1.0 發(fā)布,這才是 VS Code 真正的開源替代方案?!

總結(jié)

以上是生活随笔為你收集整理的git merge 冲突_卧槽!小姐姐用动画图解 Git 命令,这也太秀了吧?!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。