簡體   English   中英

git 分支和 git checkout -b 有什么區別?

[英]What is the difference between git branch and git checkout -b?

我對 git/gitlab 很陌生,想確認第一個屏幕截圖中兩個命令之間的區別。 擁有兩個創建新分支的命令的目的是什么。 為什么甚至需要'git branch'?

如果我想創建一個新分支但不切換到該分支,它是否純粹存在? 所以我節省了很少的時間,而不是執行“git checkout -b new_branch”然后“git checkout previous_branch”。

另外為什么說要引用當前的 HEAD? 我認為這與第二個屏幕截圖中的“remotes/origin/HEAD -> origin/master”有關?

我嘗試了“git branch test_branch_name”,它創建了新分支而不需要引用當前的 HEAD,那么為什么它提到引用當前的 HEAD?

在此處輸入圖像描述

在此處輸入圖像描述

可能沒有必要,但這里是第一個屏幕截圖來源的鏈接: https://about.gitlab.com/images/press/git-cheat-sheet.Z437175BA4191210EE004E1D9347

要填寫更多詳細信息:

...為什么甚至需要'git branch'?

git branch命令有很多選項,例如:

git branch --set-upstream-to

或者:

git branch --list

或者:

git branch -d

git checkout和新的(Git 2.23 或更高版本) git switch都不會做的事情。

git branch --list所做的事情可以git for-each-ref來完成。 git branch --set-upstream-to所做的事情可以通過git config來完成。 如果您想打個比方,Git 命令就是工具 您可以使用帶鋸、鋼鋸、平頂鋸、鑽頭或鑿子切割木材。 如果您想制作燕尾榫,這些工具中的大多數都可以完成這項工作,但使用路由器和燕尾夾具,它會更快、更好、更輕松。 如果您的目標是安裝鎖和門把手,請考慮使用孔鋸和鑽頭。

(在我看來, git checkout命令實際上內置了太多工具。顯然,最后,官方的 Git 維護人員也提出了同樣的觀點,因為 ZBA9F11ECC 執行的兩個主要工作現在可以提供git checkout by two separate front-end commands: git switch and git restore . Of course, in typical Git fashion, git restore can now do a few things that git checkout can't.)

Git 在某些方面主要是一個圖形處理工具套件,碰巧會拖拽源代碼。 您操作的圖是提交圖,它由提交的節點(圖頂點)組成,通過單向邊鏈接(弧)連接,這些邊鏈接是存儲在每個提交節點中的父 hash ID。 請參閱像 (a) Git 一樣思考

git checkout -b [name]git branch [name] && git checkout [name]的縮寫。 最新版本的 Git 還支持git switch以檢查分支。

git branch [name]等價於git branch [name] HEAD git branch [name]git branch [name] [start-point]的特例。 省略start-point時,默認為HEAD

更多詳細信息,請參見git 分支

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM