成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

您可能會錯過的七個有用的 GIT 命令

開發(fā) 前端
在這篇文章中,我將與你分享7個 GIT 命令。 它們是有用的簡短命令,但有時我們會錯過它們。

在這篇文章中,我將與你分享7個 GIT 命令。 它們是有用的簡短命令,但有時我們會錯過它們。

01、查看之前的分支

我們將從一個非常短的 git 命令開始這個列表。 有時,我們在分支機構(gòu)工作。 對于某些季節(jié),我們需要切換到另一個分支。 

但我們意識到我們錯過了上一個分支中的一些東西。 

當(dāng)然,我們需要使用checkout命令來checkout到上一個分支。 

但除了找到(或記住)分支名稱來檢查這一點之外。 我們完全可以用另一種更簡單的方式來做。 我們只需要使用減號而不是分支名稱來調(diào)用 checkout 命令:

git checkout -

有用,并且很簡單。

02、丟棄所有未提交的代碼

同樣,我們將使用一個簡單的命令。 有時,我們想丟棄所有未提交的代碼。 Git 為我們提供了一個強大的工具,那就是帶有 --hard 選項的 git Reset。 

這就是我想在這一部分提到的方式,相信很多開發(fā)者都知道這個命令。 

在這里,我只想添加一個小技巧,即在運行 git reset 之前使用 git add 。 它將幫助你清除新文件/目錄,而不僅僅是清除修改的內(nèi)容。 我們來測試一下。

沒有 git add .:

即使我們運行 git reset 命令,我們可能會看到新文件仍然保留。 讓我們嘗試一下 git add .:

只需多一步,所有新文件/目錄就都清楚了。

03、列出包含提交的分支

在這一部分中,我們將討論 gitbranch 命令的一個很好的選項。

但有時,我有很多任務(wù)要同時處理。 我們在第一個分支工作,然后跳到另一個分支。 之后,我們跳回第一個分支。 跳轉(zhuǎn)到很多分支可能會讓你忘記要查找的分支名稱。 

因此,要查找包含提交的分支,我們只需要使用 contians 選項和哈希提交調(diào)用 gitbranch 命令。

git branch --contians <commit>

讓我們在這個演示中測試一下。 我有一個包含這些提交的存儲庫。

在此演示中,我有一個分支 contains_commit_2 從分支 contains_commit_1 簽出。 分支 contains_commit_3 從分支 contains_commit_2 簽出。 這意味著最后兩個分支包含來自第一個分支的提交。 讓我們檢查一下。

是工作! 找到包含提交的分支非常簡單。 讓我們進入下一部分。

04、查看/刪除所有合并的分支

在這一部分中,我們將使用合并分支。 時間長了,如果我們合并分支后不刪除的話,我們可能會得到一堆合并的分支。 要查看合并的分支,我們只需調(diào)用帶有 merged 選項的 gitbranch 命令即可。 我們來測試一下:

git branch --merged <branch>

在這個演示中,我們可能會看到我們列出了合并到主分支中的所有分支。 現(xiàn)在,我們將轉(zhuǎn)向?qū)⑺鼈內(nèi)縿h除的方法。 

這非常簡單,因為我們有辦法列出需要刪除的分支。 我們只需要將管道與 xargs 和 gitbranch -D 一起使用,如下所示:

git branch --merged <branch> | xargs git branch -D

但在運行此命令之前,我們需要使用 --merged 解決純 gitbranch 命令中的一些小問題。 

首先,我們可以看到該命令還列出了合并分支中的主分支。 要刪除它,我們只需要添加一個管道 grep,如下所示:

git branch --merged <branch name> | grep -v "<branch name>"

讓我們看看結(jié)果:

這個問題就解決了。 但我們還有另一個問題是當(dāng)前分支。 我們可能會看到該命令還列出了當(dāng)前分支。 我們還使用 grep 管道刪除當(dāng)前分支,如下所示:

grep -v "^*"

這是完整的命令:

git branch --merged main | grep -v "main" | grep -v "^*" | xargs git branch -D

我們來測試一下

圖片

我們可能會看到所有合并分支都消失了!

05、過濾新行

在這一部分中,我們將找到一種方法來檢測代碼中不需要的更改。 

舉個例子,我們經(jīng)常忘記刪除調(diào)試行(console.log…)。 我知道我們可以通過在 IDE 中查找它們來進行檢查,但在這里,我將向您展示如何使用 GIT 進行檢查。 

您還記得上一部分中的 grep 管道嗎? 這是一個很棒的工具。 我們將把它與 git diff 命令一起使用。 只需這樣做:

git diff | grep "^+.*<code function you want to find>"

這稍微解釋了這個 grep 模式。

在這種模式中,我發(fā)現(xiàn)這些行以“+”開頭,以確保我們只過濾添加行。 

接下來,我們將通過添加包含關(guān)鍵字的行(在我的例子中為“console.log”)來進行過濾。 

讓我們在這里檢查一下總結(jié)果:

有效! 檢測提交中添加的內(nèi)容非常簡單。

06、Git 一分為二

上面,我們使用了有關(guān)檢測、清理和列出的命令。 

在這一部分中,我們將使用支持調(diào)試的命令 git bisect。 我真希望我早點知道這個命令。 

在我們的生活中,您是否遇到過錯誤但無法立即檢測到“錯誤”提交? 您可能需要檢查每個提交,直到找出該提交導(dǎo)致此錯誤的位置。 

所以 GIT 為我們提供了一個很好的工具來處理這種情況。 它就是 git bisect。 使用 git bisect 我們可以節(jié)省更多的調(diào)試時間。 

要使用這個命令,我們需要給它一個“壞”提交和一個“好”提交。 它將幫助我們?nèi)Τ鑫覀兎秶鷥?nèi)犯下的錯誤。 

我們的工作仍然檢查每個提交,但不需要循環(huán)所有提交,我們只需要檢查更少的提交。 這可能是模棱兩可的。 

現(xiàn)在,我們來看看演示吧。

我們將制作一個從“第 1 次提交”到“第 10 次提交”超過 10 次提交的演示。

假設(shè)我們在 HEAD 中發(fā)現(xiàn)了一個問題(第 10 次提交)。 但我們不知道造成這個問題的確切問題是什么。 讓我們使用 git bisect 來查找此提交。 第一次,我假設(shè)問題提交是“commit 7th”。 

因此,提交的狀態(tài)如下:

10th - BAD
9th - BAD
8th - BAD
7th - BAD
6th - GOOD
5th - GOOD
4th - GOOD
3rd - GOOD
2nd - GOOD
1st - GOOD

我們將通過 git bisect start 開始此測試。 然后我們應(yīng)該給它好的和壞的承諾來制定一個范圍:

然后,它使我們進入第五次提交。 當(dāng)然,這很好。 所以我們只需要注意到這是一個很好的承諾。

然后它使我們進入第七次提交。 它有錯誤,因此我們將此提交標(biāo)記為錯誤:

在最后一步中,我們進入第六次提交。 因為這是第七次提交的前一次提交(該提交發(fā)生了錯誤)。 所以我們將其標(biāo)記為良好:

我們得到了關(guān)于提交使錯誤提交第七次的最終結(jié)果! 我們只需要測試三次而不是七次!

我認為這是一個很好的 GIT 命令,可以幫助我們更輕松地進行調(diào)試。 如果您仍然想優(yōu)化調(diào)試時間,可以嘗試使用 git bisect run。 它將幫助你通過腳本檢測提交是好還是壞。

07、Git 修復(fù)

本文中的最后一個命令是我希望能夠應(yīng)用到我的生活中的命令之一。 

有時,我們在處理一些子任務(wù)的分支機構(gòu)工作時會用到它。 

例如:我們需要在頁面上制作一個新按鈕。 

我們可能有三個基本任務(wù):創(chuàng)建單元測試、按鈕樣式以及處理按鈕單擊操作。 我假設(shè)我們會按照“測試”、“樣式”和“腳本”的順序進行,完成所有這些任務(wù)后,我們意識到我們在創(chuàng)建測試時缺少一些東西。 我們應(yīng)該做什么? 

當(dāng)然,我們會修復(fù)它。 但是在修復(fù)它并提交之后,我們可能會得到一個不太漂亮的提交列表。 

讓我們看一個例子:

在此示例中,我們只有一個“添加”提交。 可能沒問題。 但是如果我們有很多這樣的提交會發(fā)生什么呢? 我們的提交樹可能看起來像一件補丁襯衫。 為了解決這個問題,我們可以使用git fixup命令。

要使用這種方式,我們只需要按照正常的方式進行一些添加即可。 我們不需要像普通提交那樣提交修復(fù),只需使用選項 --fixup 和我們想要修復(fù)的提交的哈希值調(diào)用 git commit 命令即可。 它看起來像這樣。

我們還有四個提交。 但最后一次提交與需要修復(fù)的提交具有相同的消息,并帶有前綴“!fixup”。 為了使它們成為真正的解決方案,我們還需要采取進一步的措施。 只需要 git rebase -i --autosquash <previous base commit> 。 我們來試試吧!

完成啦! 不再有“修復(fù)”提交。 提交列表現(xiàn)在很清楚了!

結(jié)論

這就是我想在這篇文章中分享的全部內(nèi)容。 我認為上面的命令使用起來并不太復(fù)雜。 每個人都可以輕松記住并使用它們。 

責(zé)任編輯:華軒 來源: web前端開發(fā)
相關(guān)推薦

2020-03-09 10:10:02

AI 數(shù)據(jù)人工智能

2020-02-25 09:11:46

IT網(wǎng)絡(luò)信息

2020-02-25 14:41:17

安全IT專業(yè)人士公司

2016-03-16 11:20:47

2023-07-14 14:53:38

人工智能prompt

2018-07-10 11:05:18

開發(fā)者技能命令

2018-07-10 10:45:00

規(guī)范Commit項目

2023-02-15 08:34:12

測試移動開發(fā)

2023-09-07 16:28:46

JavaScrip

2022-12-07 15:36:20

Pandas數(shù)據(jù)集

2022-06-16 13:37:47

RPA機器人流程自動化

2021-11-17 15:28:06

LinuxLinux命令

2022-01-19 11:48:21

安全開源工具

2023-11-06 18:06:00

Docker容器

2021-11-22 12:13:54

Linuxwget 命令

2024-12-19 08:17:16

2024-08-13 08:00:00

2022-12-04 22:47:49

Linux 發(fā)行版Linux

2024-01-09 18:01:38

2020-07-06 07:48:16

MySQL細節(jié)SQL
點贊
收藏

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

主站蜘蛛池模板: 国产成人99久久亚洲综合精品 | 国产精品久久久久无码av | 欧美aⅴ | 在线国产一区 | 国产免费一区二区 | 免费在线观看成人av | 国产精品久久久久久久7电影 | 狠狠婷婷综合久久久久久妖精 | 久久久久国产一区二区三区 | 欧美v在线| 黄色一级片在线播放 | 亚洲www| 少妇午夜一级艳片欧美精品 | 国产超碰人人爽人人做人人爱 | 97视频精品 | 亚洲精品电影在线观看 | 亚洲国产一区二区视频 | 国产精品一区二区三区久久 | 狠狠操狠狠操 | 日本一区二区高清不卡 | 黄色在线网站 | 日韩在线 | 免费亚洲一区二区 | 精品一区二区三区电影 | 在线播放一区二区三区 | 91色站 | 国产成人一区二区 | 国产精品美女久久久久久免费 | 亚洲成人av | 日韩中文一区二区三区 | 你懂的在线视频播放 | 91国内外精品自在线播放 | 国产高清视频在线播放 | 欧洲免费视频 | 国产99视频精品免费视频7 | 亚洲免费视频播放 | 精品一区二区三区在线观看 | 久久精品一二三影院 | 久久在视频 | 欧美精品综合在线 | 91精品国产综合久久婷婷香蕉 |