[英]Git command: what is the difference between git checkout -b <branch> <remote branch> and git branch <branch> <remote branch>?
[英]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.