如何正确创建分支GIT
How to create branches correctly GIT
我希望我的“设置”分支成为 develop
分支的子分支。
我们总是从“主”分支开始。
所以我创建了一个新的 develop
-branch
git checkout -b develop main
git commit -m "created develop"
git push
但它不允许我简单地推,GIT说我需要写
git push --set-upstream origin develop
第一个问题:这是否意味着 origin - 是我们的 main 并且我们从 main 创建“develop”?
所以当我使用时:
git push --set-upstream origin develop
git checkout -b "setting"
我是从开发中创建这个设置吗?
或者我再次从 main 创建它???)以及我需要使用什么命令才能成为 settings
的 develop
父级
如何让一个分支成为另一个分支的父分支。
--set-upstream origin 的作用是什么?
Why you want to push if you create and checkout a branch? You can only push file-changes, but not branches...
如果你想创建分支settings
,你可以简单地执行以下,如果你留在那个分支,你想创建settings
(在你的情况下在分支develop
-> git checkout develop
切换到 develop
):
git checkout -b settings
如果你不在develop
分支,你可以用下面的方法执行:
git checkout -b <new branch> <destination branch>
在你的情况下:
git checkout settings develop
通过以下方式,您也可以远程创建分支:
git push <remote-name> <branch-name>
现在您可以更改文件并将更改后的文件推送到远程分支 settings
我认为这里的主要误解是关于什么是分支。也许你以前使用过不同的版本控制系统,或者在你的脑海中形成了一个不完整的画面。
在git中,分支只是指向一组提交的标签。更严格地说,它指向单个提交,即分支的“尖端”;该提交然后指向其父或多个父级,并且可以构建历史向后。 “在分支上”创建新提交在内部包括首先创建提交,然后将分支指针移动到指向该提交。
由此可得出以下几点:
- 分支之间没有任何关系。在您创建分支 A 时,它可能指向与分支 B 相同的提交,但后来两者都转移到不同的“提示”。 git 中没有关于 A 或 B 是“原始”分支还是“父”分支的记录。
- 创建分支不需要涉及任何新的提交。您只是创建一个指向特定提交的新指针,然后您将通过进行新提交(或使用其他特定命令)来移动它。
另一件重要的事情是了解本地计算机上的分支指针和远程服务器(如 Github 或 Gitlab)上的同名指针可以独立移动。最简单的是,如果你从互联网上拔下你的电脑,你可以继续创建提交和全新的分支。当你再次连接时,你可以使用一种叫做“远程”的东西来同步它们;默认遥控器称为“origin”
考虑到这一点,我们可以解释几个命令:
git checkout -b develop main
这将创建一个名为“develop”的新分支指针,最初指向与“main”相同的位置,然后将其设为我们当前签出的分支(一个新提交将添加到)。 “开发”和“主要”之间没有持续关系;他们现在恰好指向同一个提交。
git push --set-upstream origin develop
这与配置了名称“origin”的远程服务器对话,并告诉它你的新分支指针“develop”。 “--set-upstream”只是一个方便:它将“origin”设置为该分支的默认远程,因此您可以运行“推”和“拉”命令而无需每次键入“origin”。
我希望我的“设置”分支成为 develop
分支的子分支。
我们总是从“主”分支开始。
所以我创建了一个新的 develop
-branch
git checkout -b develop main
git commit -m "created develop"
git push
但它不允许我简单地推,GIT说我需要写
git push --set-upstream origin develop
第一个问题:这是否意味着 origin - 是我们的 main 并且我们从 main 创建“develop”?
所以当我使用时:
git push --set-upstream origin develop
git checkout -b "setting"
我是从开发中创建这个设置吗?
或者我再次从 main 创建它???)以及我需要使用什么命令才能成为 settings
develop
父级
如何让一个分支成为另一个分支的父分支。 --set-upstream origin 的作用是什么?
Why you want to push if you create and checkout a branch? You can only push file-changes, but not branches...
如果你想创建分支settings
,你可以简单地执行以下,如果你留在那个分支,你想创建settings
(在你的情况下在分支develop
-> git checkout develop
切换到 develop
):
git checkout -b settings
如果你不在develop
分支,你可以用下面的方法执行:
git checkout -b <new branch> <destination branch>
在你的情况下:
git checkout settings develop
通过以下方式,您也可以远程创建分支:
git push <remote-name> <branch-name>
现在您可以更改文件并将更改后的文件推送到远程分支 settings
我认为这里的主要误解是关于什么是分支。也许你以前使用过不同的版本控制系统,或者在你的脑海中形成了一个不完整的画面。
在git中,分支只是指向一组提交的标签。更严格地说,它指向单个提交,即分支的“尖端”;该提交然后指向其父或多个父级,并且可以构建历史向后。 “在分支上”创建新提交在内部包括首先创建提交,然后将分支指针移动到指向该提交。
由此可得出以下几点:
- 分支之间没有任何关系。在您创建分支 A 时,它可能指向与分支 B 相同的提交,但后来两者都转移到不同的“提示”。 git 中没有关于 A 或 B 是“原始”分支还是“父”分支的记录。
- 创建分支不需要涉及任何新的提交。您只是创建一个指向特定提交的新指针,然后您将通过进行新提交(或使用其他特定命令)来移动它。
另一件重要的事情是了解本地计算机上的分支指针和远程服务器(如 Github 或 Gitlab)上的同名指针可以独立移动。最简单的是,如果你从互联网上拔下你的电脑,你可以继续创建提交和全新的分支。当你再次连接时,你可以使用一种叫做“远程”的东西来同步它们;默认遥控器称为“origin”
考虑到这一点,我们可以解释几个命令:
git checkout -b develop main
这将创建一个名为“develop”的新分支指针,最初指向与“main”相同的位置,然后将其设为我们当前签出的分支(一个新提交将添加到)。 “开发”和“主要”之间没有持续关系;他们现在恰好指向同一个提交。
git push --set-upstream origin develop
这与配置了名称“origin”的远程服务器对话,并告诉它你的新分支指针“develop”。 “--set-upstream”只是一个方便:它将“origin”设置为该分支的默认远程,因此您可以运行“推”和“拉”命令而无需每次键入“origin”。