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

Git 速查表:中級用戶必備的 12 個 Git 命令

開發 前端
雖然在使用 Git 的最基本級別時不需要這些中級命令,但它們可以幫助用戶提高使用 Git 的效率。它們提供了一組強大的功能,可以幫助您成為一個全面發展的開發者,這通常意味著能夠以創造性的方式解決問題。

在本篇文章中,我們將介紹中級用戶必備的 12 個 Git 命令。

git config

git config 命令用于設置 Git 配置。使用這個命令,用戶可以在三個不同級別設置配置:

  • 本地級別:在特定的 Git 倉庫中(存儲在項目根目錄的 .git/config 文件中)。
  • 全局級別:針對操作系統中的當前用戶。
  • 系統級別:針對操作系統中的所有用戶。

默認情況下,git config 命令會更改本地級別的設置。此命令可用于設置諸如 Git 用戶名、電子郵件地址、默認文本編輯器(如 Vim)、默認合并行為、終端輸出外觀和別名等信息。

例如,可以使用以下命令設置當前用戶的名稱和電子郵件:

git config --global user.name "Your Name"
git config --global user.email "name@example.com"

可以使用以下命令將 Git 的默認文本編輯器設置為 Vim:

git config --global core.editor "vim"

列出所有當前 Git 的配置:

git config --list --show-origin

git mv

git mv 命令用于在 Git 倉庫中移動和/或重命名文件。該命令會在工作目錄中移動文件,并更新 Git 索引中舊文件路徑和新文件路徑。

git mv path/to/old_file_name.ext path/to/new_file_name.ext

需要注意的是,文件在您的文件系統中也會被重命名/移動,所以這個命令一舉兩得。然而,舊文件的歷史記錄都被 Git 跟蹤了,所以如果您發現需要舊版本,可以隨時找回。

git rm

git rm 命令用于從 Git 倉庫中刪除文件。它會在工作目錄中刪除文件,并從 Git 索引中移除文件。

要刪除特定文件:

git rm path/to/filename.ext

需要注意的是,此命令會從您的文件系統中刪除文件。然而,已刪除文件的歷史記錄仍被 Git 跟蹤,所以如果您后來發現需要它,可以隨時找回。

git diff

git diff 命令用于顯示提交、分支以及其他代碼狀態之間的差異。默認情況下,git diff 顯示工作樹與暫存區之間的差異。

該命令還可用于比較分支之間的差異:

git diff branch1 branch2

或者用于比較兩個提交之間的差異:

git diff commitID1 commitID2

為了比較一個特定文件,也可以加上第三個文件名參數:

git diff commitID1 commitID2 file_to_compare.ext

git reset

git reset 命令用于將分支恢復到先前的狀態。當給出提交、分支或其他引用時,該命令將分支和 HEAD 引用移動到指向該引用的位置。如果未提供引用參數,則默認將引用指向 HEAD。

該命令提供了三種操作模式:soft, mixed,和 hard。使用 soft 選項時,索引會被更新,但暫存的提交和工作目錄保持不變。使用 mixed 選項(默認選項)時,索引將被重置,已暫存的更改將被移回工作目錄。使用 hard 選項時,索引和工作目錄都會被重置,所有更改都將丟失。

要將暫存區重置為與最近的提交匹配,而不丟失工作區的任何數據,請使用以下命令:

git reset

撤銷所有當前的更改并將工作區重置為與最近的提交匹配,請使用以下命令:

git reset --hard

git tag

git tag 命令用于創建一個人類可讀的標簽(例如版本號),用于引用存儲庫中特定的提交。標簽在本質上是一個引用,類似于分支名稱,但標簽通常是靜態的,因為它們指向單個提交,而分支名稱是動態的,因為它們跟蹤分支的末端,并隨著新的提交添加而更新。通常情況下,標簽在標記發布版本時很有用。

為當前簽出的 Git 提交創建一個標記:

git tag tag_name

git rebase

Git rebase 命令允許用戶將一系列提交移動到一個新的基礎提交上。如果用戶提供了一個引用參數,則該分支將在該分支上進行 rebase。否則,默認情況下,該分支將在遠程分支上進行 rebase。

git rebase origin

通過在 rebase 命令中添加 -i 選項,用戶可以執行交互式 rebase。在交互式 rebase 中,用戶還可以組合、拆分、重新排序、刪除和編輯提交記錄。

git cherry-pick

git cherry-pick 命令接受一個或多個提交記錄,并將它們應用到一個現有的分支上。該命令提供了一種快速將提交記錄添加到多個分支的方式,而無需執行 rebase 操作。

要將單個提交記錄選取并應用到當前分支上,可以執行以下操作:

git cherry-pick commitID

用戶也可以選取一系列提交記錄并將它們應用到分支上。默認情況下,cherry-pick 不包含第一個提交記錄,但會包含最后一個提交記錄。

git cherry-pick oldest_commit...newest_commit

要讓 cherry-pick 命令包含第一個和最后一個提交記錄,可以將命令更新如下:

git cherry-pick oldest_commit^...newest_commit

git bisect

git bisect 命令用于通過對提交歷史記錄進行二分查找來分離出特定的提交記錄。該命令在幫助我們找出是哪個提交引入了 bug 時非常有用。

要運行這個命令,需要先找到一個問題未發生的過去提交記錄,這里稱之為 "good_commit_id"。然后在最近的分支上運行以下命令:

git bisect start
git bisect bad
git bisect good good_commit_id

Git 會對提交記錄進行二分查找,它會檢查當前提交和上一個好的提交之間的提交記錄。此時,開發人員需要檢查或測試代碼,以確定 bug 是否仍然存在。如果 bug 仍然存在,則運行 git bisect bad 命令;如果 bug 不存在,則運行 git bisect good 命令。

一旦找到了引入 bug 的提交記錄,搜索就會返回第一個壞的提交記錄的 commit ID。從這里開始,用戶可以檢查引入 bug 的提交記錄。然后可以使用 git bisect reset 命令將分支恢復到執行搜索之前的狀態。

這為開發人員快速追蹤 bug 的源頭提供了一種方法,因為每次將提交歷史記錄分成兩半,可以指數級地減少需要手動檢查的提交記錄數量。

git revert

git revert 命令用于撤消之前提交的更改。該命令接受一個 commit ID,然后在當前分支上創建一個新的提交記錄,以反轉 revert 提交記錄中的更改。這種方法允許用戶撤消一個更改,而無需重寫歷史記錄。執行該命令將在分支的末尾產生一個新的提交記錄,用于撤消 revert 的提交記錄中的更改。

git revert commitID

git fetch

git fetch 命令用于從遠程倉庫下載引用(包括標簽和分支)。它會下載新創建的引用,并完成本地已存儲引用的歷史記錄。與 git pull 不同,git fetch 命令不會更新本地倉庫的工作狀態,也不會執行合并操作。默認情況下,git fetch 命令會獲取當前倉庫的所有引用。

要從遠程倉庫獲取所有引用,請使用以下命令:

git fetch origin

要從特定分支獲取引用,請使用以下命令:

git fetch origin branch_name

git blame

通過 git blame 命令,用戶可以查看文件中每一行最后一次修改的時間以及進行修改的責任人。該工具對于理解文件的歷史記錄非常有用,可以幫助用戶確定在代碼更改方面應該向誰尋求問題或建議。

要查看特定文件的此信息,請使用以下命令:

git blame path/to/filename.ext

總結

雖然在使用 Git 的最基本級別時不需要這些中級命令,但它們可以幫助用戶提高使用 Git 的效率。它們提供了一組強大的功能,可以幫助您成為一個全面發展的開發者,這通常意味著能夠以創造性的方式解決問題。

本文譯自:Git Cheat Sheet: 12 Essential Git Commands For Intermediate Users

原文鏈接:https://initialcommit.com/blog/git-cheat-sheet-intermediate

責任編輯:武曉燕 來源: Se7en的架構筆記
相關推薦

2020-10-08 18:14:15

碼農Git命令

2021-08-09 13:00:45

Linux速查表

2024-10-29 15:42:13

2021-01-09 16:16:40

開源軟件速查表編程語言

2023-10-26 18:05:37

Git命令差異

2021-04-20 09:56:58

Python 開發編程語言

2015-10-30 11:57:49

開發者設計師速查表

2009-10-26 16:08:40

Oracle默認用戶名

2020-11-26 06:50:40

APII請求Fetch API

2022-12-19 08:05:04

Python速查表知識點

2015-08-03 16:42:59

2018-05-04 09:14:09

Git技巧shell命令

2018-04-15 15:43:46

Git技巧命令

2022-12-15 07:45:51

極客版編程速查表

2017-10-03 06:37:17

機器學習深度學習查表!

2011-03-16 09:49:54

HTML 5

2025-04-25 11:20:00

網絡地址端口

2020-08-06 08:48:38

速查表系統管理員Linux

2024-01-15 10:48:53

REST API系統架構

2012-12-12 13:44:31

Git
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品福利视频 | 九九视频在线观看视频6 | 欧美日韩在线免费 | 久久9999久久 | 91精品国产高清一区二区三区 | 97国产在线视频 | 91在线精品播放 | 亚洲欧美成人影院 | 四虎在线视频 | 欧美在线观看一区二区 | 国产在线不卡视频 | 久久久www成人免费无遮挡大片 | www国产成人免费观看视频 | 亚洲一区电影 | 日韩精品视频在线 | 久久男人 | 精品美女视频在线观看免费软件 | 国产精品久久久久久久久久妞妞 | 精品9999| 91精品国产91久久久久久 | 国产精品免费看 | 龙珠z在线观看 | 欧美成人h版在线观看 | 日本视频中文字幕 | 亚洲国产成人精品女人 | 日韩久久久久 | 超碰在线国产 | 亚洲视频手机在线 | 久久精品亚洲国产奇米99 | 亚洲精品一区二区三区蜜桃久 | 伊人亚洲| 国产羞羞视频在线观看 | 日韩欧美国产一区二区 | 亚洲综合天堂网 | 国产激情偷乱视频一区二区三区 | a级片在线 | 欧美日韩国产精品一区 | 日韩三级一区 | 久久小视频 | 国产日产精品一区二区三区四区 | 日韩电影免费在线观看中文字幕 |