精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

掌握強大的 Git 變基命令

系統(tǒng) Linux
今天學(xué)習(xí)如何使用 Git 來壓扁、變基和精選。來看一下吧。

當我與別人談到 Git 時,幾乎每個人都對 ??git rebase 命令?? 有強烈的印象,這個命令讓許多人遇到了問題,而不得不更改目錄、刪除倉庫、然后再重新克隆一個倉庫。我認為這是因為他們誤解了分支是如何工作,遇到了一個非常糟糕的默認界面,還有一些合并沖突把事情搞得一團糟。

怎么找不到 git squash 命令?

如果你曾在本地的倉庫提交過很多次,并希望能把這些提交都合并為一個提交,接下來,我們就來介紹能用什么 Git 命令達到這個目的。Git 稱這個概念為 “壓扁提交squash commits”。我在編寫文檔時發(fā)現(xiàn)了這個概念:我花了十幾個提交才修改好我的 Markdown 文檔,但是倉庫的維護者不想看到我的所有嘗試,以免擾亂了該項目的歷史,所以我被告知“需要壓扁你的提交”。

壓扁提交聽起來是一個很有用的方法。但是只有一個問題:我不知道該怎么做。作為 Git 的新手,我做了任何人會做的事情:我去查閱 ??git-squash?? 的手冊,但我立即遇到了阻礙:

$ man git-squash> No manual entry for git-squash

我發(fā)現(xiàn)沒有一個名為 ??squash?? 的 Git 命令,而是被要求 ??運行一個完全獨立的命令:git rebase 命令??,該命令能將我的所有提交最終合并為一個提交。

我知道我碰到一個常見的情形:已經(jīng)使用工具一段時間的人使用了行話或引用了一個概念,這個概念對他們來說是非常清楚的,但對新手來說就不能明白了。從概念上講,這個情況看起來是這樣的:

Image of 6 bowls of different colored spices, and an arrow pointing to the second image of all the spices blended into one bowl.

of 6 bowls of different Image colored spices, and an arrow pointing to the second image of all the spices blended into one bowl.

我這樣說是為了鼓勵你,你絕對不是第一個或最后一個 被 Git 或談?wù)?Git 的人 弄糊涂的人。你可以要求對方說明白他的意見,并幫助你應(yīng)該使用的正確命令。倉庫的維護者實際上的意思是,“使用 ??git rebase?? 命令**,將很多提交壓扁成一個提交”。

現(xiàn)在就來學(xué)習(xí) git rebase 命令吧

??git rebase?? 命令會將一個提交鏈從其第一個父級中刪除,并將其放置在另一個提交鏈的末尾,將兩個提交鏈組合成一個長鏈,而不是兩個并行鏈。我意識到這是一個很復(fù)雜的定義。

回想一下 Git 的提交是如何鏈接在一起的,你可以看到,除了初始的 ??main??(或 ??master??)分支外,任何分支都有一個 父提交parent commit 作為該鏈的 “基礎(chǔ)base”。“變基rebase” 能使另一個鏈中的最后一個提交成為指定分支的新 “基礎(chǔ)提交base commit”。

在 Git 中整合來自不同分支的修改主要有兩種方法:合并merge 以及 變基rebase,你可能更熟悉 ??git merge?? 命令。接下來,就來看看 [??git-scm.com??] 是如何解釋 ??git merge?? 和 ??git rebase?? 的差異:

Image of Git merge versus git rebase shown as numbered bubbles.

Image of Git merge versus git rebase shown as numbered bubbles.

在合并示例中,它會把兩個分支的最新快照(??C3?? 和 ??C4??)以及二者最近的共同祖先(??C2??)進行三方合并,合并的結(jié)果是生成一個新的快照(??C5??)。??experiment?? 的分支指針仍然存在,仍然指向 ??C4??。

在變基示例中,它提取在 ??C4?? 中引入的補丁和修改,然后在 ??C3?? 的基礎(chǔ)上應(yīng)用一次,使 ??C3?? 成為 ??C4?? 的新父級,并產(chǎn)生了一個名為 ??C4'?? 的新提交。

(LCTT 譯注:具體的命令如下:

$ git checkout experiment$ git rebase mainFirst, rewinding head to replay your work on top of it...Applying: added staged command

它的原理是首先找到這兩個分支 —— 即當前分支 ??experiment??、變基操作的目標基底分支 ??main?? —— 的最近共同祖先 ??C2??,然后對比當前分支相對于該祖先的歷次提交,提取相應(yīng)的修改并存為臨時文件,然后將當前分支指向目標基底 ??C3??,最后以此將之前另存為臨時文件的修改依序應(yīng)用。)

值得注意的是,分支指針 ??main?? 沒有移動。要讓 Git 將指針移動到鏈的末尾(由??experiment?? 指向),你還需要執(zhí)行合并。

(LCTT 譯注:具體的命令如下:

$ git checkout main$ git merge experiment

master 分支的快進合并

master 分支的快進合并

此時,??C4'?? 指向的快照就和上面使用 ??merge?? 命令的例子中 ??C5?? 指向的快照一模一樣了。)

??git rebase?? 并不能替代 ??git merge??。??git rebase?? 是一種用于制作更清晰的歷史記錄,以與 ??git merge?? 結(jié)合使用的工具。

(LCTT 譯注:使用 ??git rebase?? 命令將提交到某一分支上的所有修改都移至另一分支上,就好像“重新播放”一樣。)

交互式變基能給你一個更友好的界面!

從命令行執(zhí)行 ??git rebase?? 命令,最可怕的地方在于它糟糕的默認界面。運行命令 ??git rebase <target-refr>?? 要么有效,要么會變得一團糟,因為它沒有太多的反饋或方法來確保它做你想做的事情。幸運的是,??git rebase?? 命令和許多其他 Git 命令一樣,具有 交互模式interactive mode,你可以使用參數(shù) ??-i?? 或者 ??-interactive?? 來使用交互模式。

Image of the Git lens interactive Rebase tool in VS Code.

Image of the Git lens interactive Rebase tool in VS Code.

在使用交互式模式時,??git rebase?? 會從一個糟糕的黑框界面轉(zhuǎn)換為一個選項菜單,允許你選擇對正在變基的提交鏈所做的事。對于每個提交,你可以選擇

  • 選用pick:按原樣包含
  • 重寫reword:重寫提交消息
  • 編寫edit:在變基完成之前對提交中的文件進行進一步更改
  • 壓扁squash:將多個提交壓縮成一個提交,保留所有提交消息
  • 修理fixup:將多個提交壓縮成一個提交,但只保留最后一個提交消息
  • 丟棄drop:丟棄此提交

就我個人而言,我更喜歡 ??VS Code 的開源 GitLens 擴展?? 使用下拉選擇列表布局選項的方式,但 Git 允許你使用任何編輯器選擇這些選項。對于 Emacs 或 Vim 等純文本工具,你需要鍵入選擇,而不是從菜單中選擇,但最終結(jié)果仍然是相同的。

何時做變基

知道 何時 做變基與知道 如何 做變基同樣重要。事實上,如果你不在乎你的倉庫歷史提交消息有點混亂的話,那么你可以永遠都不使用 ??git rebase?? 命令。但是,如果你想要更干凈的歷史提交消息,并且想要更少擾亂你的圖形視圖的提交,那么當你使用 ??git rebase?? 命令時,有一個重要的經(jīng)驗法則需要時刻記住:

“不要變基你存儲庫以外的的提交,那些提交可能是別人工作的基礎(chǔ)。”

如果你遵循該準則,不會發(fā)生什么大問題的。

簡而言之,如果你讓一個本地分支來完成你的工作,變基是沒有問題的。但一旦該分支被 推送push

希望你會認為上述內(nèi)容有助于你理解 ??git rebase?? 命令的工作原理,并能讓你更有信心地使用它。與任何 Git 命令一樣,練習(xí)是學(xué)習(xí)和理解怎么做的唯一方法。我鼓勵你勇敢地嘗試 交互式變基interactive rebase ??git rebase -i <branch name>??!

接下來學(xué)習(xí) Git cherry-pick 命令吧

大多數(shù)開發(fā)人員將修改提交到某一分支上,但是之后發(fā)現(xiàn)他們一直提交到了錯誤的分支上。理想情況下,他們可以拿走那個提交,然后把它移到正確的分支,這正是 ??git cherry-pick?? 命令的作用。

??git cherry-pick?? 命令利用了變基單個提交的方法。這一用法非常常見,以至于有了它自己的命令。

Image of a woman picking a cherry from one tree and putting on another tree.

Image of a woman picking a cherry from one tree and putting on another tree.

要使用 ??git cherry-pick??,你只需告訴 Git 你要移動到“那個分支”的提交 ID(由 ??HEAD?? 指向):

$ git cherry-pick <target-ref>

如果出現(xiàn)問題,你可以根據(jù) Git 提供的錯誤消息,來進行恢復(fù):

$ git cherry-pick -i 2bc01cdAuto-merging README.mdCONFLICT (content): Merge conflict in README.mderror: could not apply 2bc01cd… added EOF lineshint: After resolving the conflicts, mark them withhint: "git add/rm ", then runhint: "git cherry-pick --continue".hint: You can instead skip this commit with "git cherry-pick --skip".hint: To abort and get back to the state before "git cherry-pick",hint: run "git cherry-pick --abort".$ git cherry-pick --abort

讓 Git 更強大

??git rebase?? 命令是 Git 實用程序強大的地方之一。你最好在測試倉庫中先練習(xí)一下怎么使用,一旦你熟悉了它的概念和工作流程,你就可以給倉庫一個清晰歷史消息記錄了。

責(zé)任編輯:龐桂玉 來源: Linux中國
相關(guān)推薦

2020-06-01 18:20:41

Git

2020-10-15 06:32:46

Git 變基GIT

2023-10-12 18:00:34

Git系統(tǒng)命令

2020-09-12 16:45:49

Git

2025-02-28 08:30:00

Git開發(fā)命令

2009-10-21 10:05:48

VB.NET Read

2023-09-01 14:07:00

ChatGPTGPT數(shù)據(jù)分析

2021-10-21 08:13:11

Springboot

2019-08-07 15:20:08

Git開源命令

2023-10-08 13:59:56

Git開發(fā)

2021-07-18 08:23:47

校招git編程

2022-06-23 10:17:00

Git技術(shù)Linux

2020-11-05 11:50:48

Git命令Linux

2025-08-07 02:55:00

2021-12-03 18:04:06

命令 RabbitMQ Web

2024-02-28 17:28:46

Git服務(wù)URL

2021-01-04 09:52:35

Git開源報表工具

2010-01-05 16:49:34

2010-01-06 17:51:26

Linux關(guān)機命令

2009-12-14 18:18:33

apt命令
點贊
收藏

51CTO技術(shù)棧公眾號

久久久久国产精品免费免费搜索| 91嫩草丨国产丨精品| 天天干天天干天天干天天| 日日狠狠久久| 久久久午夜精品| 国产精品一区专区欧美日韩| 成年人网站免费视频| 国产精品久久久久久69| 成人情趣视频网站| 日韩欧美在线字幕| 精品一卡二卡三卡四卡日本乱码| 久久久久久视频| 九色丨蝌蚪丨成人| 亚洲一卡二卡三卡四卡| 97久久天天综合色天天综合色hd| 手机免费观看av| av成人在线播放| 中文字幕免费不卡| 国产z一区二区三区| 女尊高h男高潮呻吟| 天堂网在线最新版www中文网| 成人精品视频一区二区三区尤物| 久久91精品国产91久久久| 亚洲精品第三页| 日韩大片在线永久免费观看网站| 蜜桃成人av| 色综合激情五月| 欧美一区二区三区在线免费观看| 成人免费毛片视频| 欧美精品第一区| 日韩欧美一二三区| 大荫蒂性生交片| 亚洲黄色小说网| 91久久综合| 亚洲黄页视频免费观看| 国产肥臀一区二区福利视频| 免费在线观看一级毛片| 青青草国产成人av片免费| 中文字幕日韩av| 国产精品久久久久久9999| 巨大荫蒂视频欧美另类大| 国产精品综合在线视频| 欧美激情影音先锋| 538国产视频| 91国内外精品自在线播放| 亚洲第一激情av| 欧美三级电影在线播放| 亚洲影视一区二区| 欧美黄色aaaa| 亚洲欧美中文在线视频| 中文字幕第一页在线视频| 深夜视频一区二区| 亚洲精品乱码久久久久久黑人| 国产精品日韩一区二区三区| 五月婷婷激情视频| 亚洲欧美一级二级三级| 久久av在线播放| 精品人妻一区二区免费视频| 精品国产影院| 亚洲欧美国产一区二区三区| 五月天婷婷在线观看视频| 欧美亚洲综合视频| 欧美福利视频导航| 午夜肉伦伦影院| 国产激情在线| 久久久亚洲高清| 日韩欧美在线一区二区| 亚洲第一大网站| 成人免费视频app| 国产精品亚洲片夜色在线| 亚洲字幕av一区二区三区四区| 另类小说欧美激情| 韩国欧美亚洲国产| 日本一二三区在线观看| 亚洲国产老妈| 在线性视频日韩欧美| av片在线免费看| 你懂的视频一区二区| 久久久久久高潮国产精品视| 天天干天天干天天| 久久国产麻豆精品| 欧美激情国产高清| 亚洲综合图片一区| 精品一区在线| 日韩中文字幕在线精品| 91成年人网站| 欧美高清视频看片在线观看| 日韩欧美国产一区二区在线播放| 亚洲天堂2024| 第一区第二区在线| 日韩精品自拍偷拍| av直播在线观看| 欧美精品国产白浆久久久久| 亚洲视频日韩精品| 欧美人禽zoz0强交| 91日韩在线| 一本色道久久综合亚洲精品小说 | 琪琪一区二区三区| 亚洲va久久久噜噜噜久久天堂| 中文字幕在线观看视频免费| 久久99国产精品麻豆| 国产一区二区高清不卡| 亚洲国产成人一区二区| 久久久综合精品| 精品一卡二卡三卡四卡日本乱码| www.亚洲.com| 国产精品私人影院| a级黄色小视频| 高清电影在线观看免费| 亚洲在线中文字幕| a级片一区二区| 少妇av在线| 亚洲专区一二三| jizz欧美性11| 99久久久国产| 欧美一区中文字幕| 亚洲精品国产一区二区三区| 亚洲va久久| 亚洲人成77777在线观看网| 免费看一级大片| 日韩av在线播放中文字幕| 国外成人免费视频| www在线观看播放免费视频日本| 日韩欧美在线看| 欧美xxxx×黑人性爽| 理论片一区二区在线| 大胆欧美人体视频| 国产又大又黄的视频| 国产欧美日本一区二区三区| 亚洲精品国产一区| 免费**毛片在线| 夜夜揉揉日日人人青青一国产精品| 欧美丰满熟妇xxxxx| 丰满少妇一区| 亚洲美女视频网| 日本天堂在线视频| 视频一区在线播放| 成人精品一区二区三区电影免费 | 欧美日韩大片在线观看| 国产一区二区三区四区老人| 午夜精品美女自拍福到在线| 国产三级漂亮女教师| 99久久婷婷国产精品综合| 欧美三级电影在线播放| 深夜成人在线| 欧美日韩国产免费| 91九色蝌蚪porny| 欧美不卡一区| 高清不卡一区二区三区| 激情小说 在线视频| 日韩一区在线免费观看| 精品久久一二三| 久久超级碰碰| 欧美又大粗又爽又黄大片视频| 这里只有精品免费视频| 日产国产欧美视频一区精品| 欧美日韩在线高清| 91tv亚洲精品香蕉国产一区| 日韩中文字在线| 99久久国产热无码精品免费| 一区二区三区在线免费观看| 久久人妻少妇嫩草av蜜桃| 神马影视一区二区| 国产成人综合亚洲| avav免费在线观看| 天天av天天翘天天综合网色鬼国产| 中文字幕一区二区三区四区在线视频| 午夜精品在线| 色琪琪综合男人的天堂aⅴ视频| 日干夜干天天干| 99国产精品国产精品毛片| 亚洲伊人婷婷| 第84页国产精品| 欧美大片日本大片免费观看| 中文字幕一区二区三区手机版| 99re成人精品视频| 别急慢慢来1978如如2| 希岛爱理av一区二区三区| 99在线国产| av片在线观看永久免费| 欧美在线短视频| 欧美在线一级片| 日韩影院在线观看| 黑人巨大精品欧美一区二区小视频| 乱人伦视频在线| 中文字幕精品—区二区| www.久久精品.com| 最新成人av在线| 日本三级日本三级日本三级极| 日韩在线播放一区二区| 999久久欧美人妻一区二区| 亚洲+变态+欧美+另类+精品| 久久99热精品这里久久精品| 污污视频在线免费看| 亚洲午夜视频在线| 日本乱子伦xxxx| 麻豆九一精品爱看视频在线观看免费| 国产一区二区高清视频| 青青伊人久久| 欧美亚洲国产视频小说| www久久日com| 亚洲天堂成人在线| 日本人妻熟妇久久久久久| 在线成人www免费观看视频| √…a在线天堂一区| 视频区 图片区 小说区| 天天精品视频| 国产日韩欧美自拍| jizz亚洲| 亚洲精品videossex少妇| 一级黄色片免费| 亚洲婷婷综合久久一本伊一区| 国产一级特黄a大片免费| 欧美精品日本| 国产精品久久久久免费| 欧洲成人一区| 日本a级片电影一区二区| 免费资源在线观看| 欧美va天堂va视频va在线| 国产精品自拍视频一区| 国产精品不卡在线| 人人爽人人爽av| 三级精品在线观看| 怡红院av亚洲一区二区三区h| 亚洲精品3区| 国产精品国模大尺度私拍| 亚洲a成人v| 国产精品成人国产乱一区| 三区四区在线视频| 一本一本久久a久久精品牛牛影视| 天天操天天干天天爽| 狠狠躁夜夜躁人人爽天天天天97 | 国产91丝袜在线播放九色| 日韩精品一区二区在线视频| 91久久国产| 亚洲欧美精品在线观看| 日韩成人精品一区| 超碰97人人在线| 欧美日韩午夜电影网| 国内精品美女av在线播放| 神马亚洲视频| 欧美日韩成人在线一区| 国产日韩久久久| 在线看一区二区| 亚洲色图综合区| 亚洲乱码精品一二三四区日韩在线| 国产精品入口麻豆| 成人福利视频网站| 一级黄色片毛片| 99视频超级精品| 韩国无码一区二区三区精品| 99久久国产综合精品女不卡| 亚洲 欧美 日韩在线| 波多野结衣在线一区| 国产精品福利导航| 26uuu色噜噜精品一区二区| 久久6免费视频| 久久99精品国产麻豆婷婷| 老女人性生活视频| 丝袜亚洲另类欧美综合| 国产偷人视频免费| 日韩高清欧美激情| 亚洲精品性视频| 午夜在线播放视频欧美| 男人草女人视频| 成人羞羞动漫| 天堂v在线视频| 免费欧美一区| 伊甸园精品99久久久久久| 日韩电影在线观看完整免费观看| 久久精品ww人人做人人爽| 成人豆花视频| 国产精品极品美女粉嫩高清在线| 亚洲精品555| 亚洲字幕在线观看| 风间由美性色一区二区三区四区| 久久精品国产精品青草色艺| 精品久久电影| 欧美日韩大片一区二区三区| 成人3d精品动漫精品一二三| 黄色一级片网址| 亚洲综合精品| 黄色一级片免费的| 97久久超碰精品国产| а天堂中文在线资源| 亚洲国产日韩在线一区模特| 免费av中文字幕| 色综合激情五月| 国产精品美女一区| 日韩精品视频免费| 欧美 日韩 国产 在线| 国产午夜精品久久久 | 正在播放国产精品| 在线亚洲一区| 亚洲色成人www永久在线观看| 国产精品乱看| 欧美 日韩 国产在线观看| 蜜桃久久久久久| 不卡av免费在线| 国产v日产∨综合v精品视频| 欧美人妻一区二区三区| 亚洲一区二区在线播放相泽 | 欧美一卡二卡三卡| 精品美女视频在线观看免费软件| 免费91麻豆精品国产自产在线观看| 中文字幕在线播放| 国内精品一区二区三区四区| 久久精品国产福利| 91精品久久久久久综合乱菊 | 51一区二区三区| 成人自拍偷拍| 91麻豆精品国产91久久久平台| 免费av网址在线| 成人午夜视频免费看| 三级黄色在线观看| 亚洲人被黑人高潮完整版| 中文字幕第15页| 91国产精品成人| 国产一级片一区二区| 欧美精品一区二区三区很污很色的| 人人妻人人澡人人爽人人欧美一区 | 久久激情电影| 免费激情视频在线观看| 91尤物视频在线观看| 九九视频在线免费观看| 欧美一区二区三级| 顶级网黄在线播放| 成人免费观看网址| 欧美mv日韩| 亚洲一区二区三区四区五区| 国产精品美女久久久久久久久久久 | 久久精品午夜福利| 久久成人久久鬼色| 午夜精产品一区二区在线观看的| 国产精品女人毛片| 日韩三级一区二区| 亚洲美女性生活视频| 暖暖成人免费视频| 成人情趣片在线观看免费| 日本欧美肥老太交大片| 99视频精品免费| 国产婷婷色一区二区三区四区| 一级性生活免费视频| 欧美吞精做爰啪啪高潮| 国产视频网站在线| 欧美大片第1页| 日韩欧美激情电影| www.日本少妇| 99精品视频中文字幕| 丰满少妇xoxoxo视频| 亚洲色图校园春色| 成人福利片在线| 在线观看亚洲视频啊啊啊啊| 国产在线观看免费一区| 中文字幕一区二区久久人妻网站| 亚洲成人资源网| 欧美日本网站| 国产精品久久久久久久久久| 欧美激情欧美| 国产精品久久久久野外| 亚洲大片精品永久免费| 亚洲人妻一区二区| 国产成一区二区| 亚洲h色精品| 精品无码av一区二区三区| 欧美日韩国产精品专区| 第一视频专区在线| 成人网址在线观看| 亚洲天堂成人| 免费看污片网站| 欧美日本在线观看| 美女尤物在线视频| 亚洲xxxxx| 好看不卡的中文字幕| 男生裸体视频网站| 欧美日韩一区二区三区视频| 青草久久伊人| 久久久视频免费观看| 亚洲黄页在线观看| 中文字幕资源在线观看| 五月天精品一区二区三区| 搞黄视频免费在线观看| 99蜜桃在线观看免费视频网站| 国产精品久久国产愉拍| 日日操免费视频| 亚洲精品videossex少妇| 欧美一区=区三区| 男女啪啪免费视频网站| 国产99久久久精品| 国产黄网在线观看| 欧美成人全部免费| 亚洲丝袜美腿一区| 久久精品一二三四| 在线免费观看日韩欧美| 手机在线免费av| 亚洲一区二区三区精品视频| 成人黄色小视频在线观看| 亚洲最新av网站| 欧美在线一区二区三区四| 欧美日韩第一区|