亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Git的遴選是什么及怎么使用

發布時間:2022-04-20 17:28:58 來源:億速云 閱讀:478 作者:zzz 欄目:大數據

本篇內容介紹了“Git的遴選是什么及怎么使用”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

什么是遴選?

使用遴選(cherry-pick)命令,Git 可以讓你將任何分支中的個別提交合并到你當前的 Git HEAD 分支中。

當執行 git merge 或者 git rebase 時,一個分支的所有提交都會被合并。cherry-pick 命令允許你選擇單個提交進行整合。

遴選的好處

下面的情況可能會讓你更容易理解遴選功能。

想象一下,你正在為即將到來的每周沖刺實現新功能。當你的代碼準備好了,你會把它推送到遠程分支,準備進行測試。

然而,客戶并不是對所有修改都滿意,要求你只呈現某些修改。因為客戶還沒有批準下次發布的所有修改,所以 git rebase 不會有預期的結果。為什么會這樣?因為 git rebase 或者 git merge 會把上一個沖刺的每一個調整都納入其中。

遴選就是答案!因為它只關注在提交中添加的變更,所以遴選只會帶入批準的變更,而不添加其他的提交。

還有其他幾個原因可以使用遴選:

  • 這對于 bug 修復是必不可少的,因為 bug 是出現在開發分支中對應的提交的。

  • 你可以通過使用 git cherry-pick 來避免不必要的工作,而不用使用其他選項例如 git diff 來應用特定變更。

  • 如果因為不同 Git 分支的版本不兼容而無法將整個分支聯合起來,那么它是一個很有用的工具。

使用 cherry-pick 命令

在 cherry-pick 命令的最簡單形式中,你只需使用 SHA 標識符來表示你想整合到當前 HEAD 分支的提交。

要獲得提交的哈希值,可以使用 git log 命令:

$ git log --oneline

當你知道了提交的哈希值后,你就可以使用 cherry-pick 命令。

語法是:

$ git cherry-pick <commit sha>

例如:

$ git cherry-pick 65be1e5

這將會把指定的修改合并到當前已簽出的分支上。

如果你想做進一步的修改,也可以讓 Git 將提交的變更內容添加到你的工作副本中。

語法是:

$ git cherry-pick <commit sha> --no-commit

例如:

$ git cherry-pick 65be1e5 --no-commit

如果你想同時選擇多個提交,請將它們的提交哈希值用空格隔開:

$ git cherry-pick hash2 hash4

當遴選提交時,你不能使用 git pull 命令,因為它能獲取一個倉庫的提交自動合并到另一個倉庫。cherry-pick 是一個專門不這么做的工具;另一方面,你可以使用 git fetch,它可以獲取提交,但不應用它們。毫無疑問,git pull 很方便,但它不精確。

自己嘗試

要嘗試這個過程,啟動終端并生成一個示例項目:

$ mkdir fruit.git$ cd fruit.git$ git init .

創建一些數據并提交:

$ echo "Kiwifruit" > fruit.txt$ git add fruit.txt$ git commit -m 'First commit'

現在,通過創建一個項目的復刻來代表一個遠程開發者:

$ mkdir ~/fruit.fork$ cd !$$ echo "Strawberry" >> fruit.txt$ git add fruit.txt$ git commit -m 'Added a fruit"

這是一個有效的提交。現在,創建一個不好的提交,代表你不想合并到你的項目中的東西:

$ echo "Rhubarb" >> fruit.txt$ git add fruit.txt$ git commit -m 'Added a vegetable that tastes like a fruit"

返回你的倉庫,從你的假想的開發者那里獲取提交的內容:

$ cd ~/fruit.git$ git remote add dev ~/fruit.fork$ git fetch devremote: Counting objects: 6, done.remote: Compressing objects: 100% (2/2), done.remote: Total 6 (delta 0), reused 0 (delta 0)Unpacking objects: 100% (6/6), done...
$ git log &ndash;oneline dev/mastere858ab2 Added a vegetable that tastes like a fruit0664292 Added a fruitb56e0f8 First commit

你已經從你想象中的開發者那里獲取了提交的內容,但你還沒有將它們合并到你的版本庫中。你想接受第二個提交,但不想接受第三個提交,所以使用 cherry-pick

$ git cherry-pick 0664292

第二次提交現在在你的倉庫里了:

$ cat fruit.txtKiwifruitStrawberry

將你的更改推送到遠程服務器上,這就完成了!

避免使用遴選的原因

在開發者社區中,通常不鼓勵所以遴選。主要原因是它會造成重復提交,而你也失去了跟蹤你的提交歷史的能力。

如果你不按順序地遴選了大量的提交,這些提交會被記錄在你的分支中,這可能會在 Git 分支中導致不理想的結果。

遴選是一個強大的命令,如果沒有正確理解可能發生的情況,它可能會導致問題。不過,當你搞砸了,提交到錯誤的分支時,它可能會救你一命(至少是你當天的工作)。

“Git的遴選是什么及怎么使用”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

git
AI

阿拉尔市| 桦甸市| 潜江市| 合水县| 揭西县| 洞头县| 武宁县| 新竹市| 莒南县| 华池县| 商城县| 永靖县| 淄博市| 浠水县| 中西区| 繁峙县| 固始县| 公安县| 印江| 丰台区| 阳新县| 郴州市| 罗江县| 伽师县| 江达县| 正安县| 十堰市| 西城区| 陇西县| 江永县| 平潭县| 黄浦区| 八宿县| 象山县| 库尔勒市| 德保县| 临江市| 彝良县| 绥化市| 阜城县| 十堰市|