[英]What is the difference between "git branch" and "git checkout -b"?
[英]Difference between repo start and git checkout -b
在Android內核中做一些工作。 我對git非常熟悉,但對repo並不是特別熟悉,所以我閱讀了以下文檔: http : //source.android.com/source/version-control.html 。 根據我的理解,以及試驗主題分支, repo start BRANCH_NAME
與git checkout -b BRANCH_NAME
相同。 我的理解是正確的,還是有一些我遺漏的微妙,重要的細節?
區別在於repo start
為.git / config中的分支設置remote
和merge
屬性:
[branch "YOUR_BRANCH_HERE"]
remote = aosp
merge = master
如果沒有這些,repo將不知道如何在以后運行repo upload
時正確上傳您的更改,並且它將表現為您的新分支根本不存在。
(還有一些邏輯可以讓你用--all
同時為repo中的每個項目創建新的分支,但這只是一個方便的事情。)
查看repo start的start.py
源代碼 ,我認為主要區別在於管理Android項目中包含的清單文件 。
開始一個新的開發分支,從清單中指定的修訂開始。
要添加到Trevor Johns的答案 ,您需要檢查“ 如何使現有的Git分支跟蹤遠程分支? ”(當您不使用repo start
):
git checkout -b newBranch -t aosp/master
這將在與新分支關聯的配置中設置遠程和合並( -t
=“track”)。
一個簡單的git checkout -b
不會設置任何東西,並創建一個純粹的本地分支(不跟蹤任何上游分支到遠程倉庫)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.