不
我不使用 smartgit,但这些描述是等价的。
分支混乱
git 中的分支只是指向提交的指针。因此,当您签出一个分支时,您正在将您的工作副本更新为一个特定的提交(它只是有一个好听的名字,比如“master”)。
如果你想检查一个提交(它在你的回购历史中的位置并不重要) - 你可以通过哈希检查它。如果您只是检查它以环顾四周,那么没有必要创建一个新分支。但是,根据您正在做的事情,这样做可能是个好主意。您可以在签出提交之前或之后执行此操作 - 至少是 git - 没关系。
如果您使用 git 的 cli 执行操作,您会看到如下内容:
(master) $ git checkout c5d12604219ac1d6fa0f7d8ff4be98c8a3eee0da
Note: checking out 'c5d12604219ac1d6fa0f7d8ff4be98c8a3eee0da'.
You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b new_branch_name
HEAD is now at c5d1260... Added CakeResponse::file() for serving files as response
((no branch))]$
即 git 还会通过示例命令提示您选择为您签出的提交创建一个分支并解释原因(以保留您创建的提交)。
当地分支机构
本地分支仅表示存在于本地工作副本中的分支(它出现在 .git/config 中,当你这样做时它会出现git branch
)。本地分支可能有也可能没有上游远程分支(可能有也可能没有要推送的东西)——这是你的选择,不影响分支是否是本地的——它在你的仓库中定义,因此它是本地的.