Git 创建具有和不具有'-b';
我有一种情况,我不理解更新是如何在内部发生的 我有两个远程分支:Git 创建具有和不具有'-b';,git,Git,我有一种情况,我不理解更新是如何在内部发生的 我有两个远程分支: master dev 现在,我想用dev创建3个本地分支 命令1: git checkout dev 命令2: git checkout -b "Us1DevBranch" origin/dev 命令3: git checkout -b "Us2DevBranch" origin/dev 当执行git branch命令时 dev Us1DevBranch Us2DevBranch 场景: 5天后,我选择了一个分支Us1D
master
dev
现在,我想用dev创建3个本地分支
命令1:
git checkout dev
命令2:
git checkout -b "Us1DevBranch" origin/dev
命令3:
git checkout -b "Us2DevBranch" origin/dev
当执行git branch
命令时
dev
Us1DevBranch
Us2DevBranch
场景:
5天后,我选择了一个分支Us1DevBranch并开始向该分支添加一些文件。在这5天里,假设对远程开发分支进行了5次修改,我想进行更新
现在,当我这样做时,git-pull-origin-dev
只影响我的本地dev
分支。其他2个分支Us1DevBranch和Us2DevBranch
未更新
问题:-
1) 我在文档和其他讨论论坛中看到的是,git pull在内部执行git获取,然后将git合并到从该分支创建的本地分支。但是为什么其他两个分支没有得到更新呢
2) 我的印象是,使用-b
选项签出分支机构只是为了给分支机构指定一个不同的本地名称&其他一切都是一样的。但是还有比这更重要的事情,就像我做的git pull
一样,只有通过选项git checkout dev
创建的分支受到影响,而不是其他分支!为什么会这样?1)创建新分支时,它与该时间点完全不同。您还必须手动更新所有这些分支
2) 如果您只是想给它起一个不同的名字,而其他一切都保持不变:
git branch -m newbranchname
1) 创建新分支时,它与该时间点完全不同。您还必须手动更新所有这些分支
2) 如果您只是想给它起一个不同的名字,而其他一切都保持不变:
git branch -m newbranchname
问标题问题。传递给git checkout的'-b'选项是创建一个新分支。当您希望在一行中创建并签出新分支时,将使用该选项
现在,如果您想获取/拉取所有分支,可以使用
git-fetch--all
或git-remote-update
,这是等效的。甚至git-push——所有人都在问标题问题。传递给git checkout的'-b'选项是创建一个新分支。当您希望在一行中创建并签出新分支时,将使用该选项
现在,如果您想获取/拉取所有分支,可以使用git-fetch--all
或git-remote-update
,这是等效的。甚至是git push--all
以下命令:
git checkout dev
git branch -vv
只做一项工作:它将您当前的分支更改为dev;它不会创建任何名为dev的分支!您可以执行git checkout dev
,因为您的本地分支中已经有了它,这是克隆的结果您的远程分支中有一个dev分支
但是
是否有三份工作:
git fetch
,git pull
,git push
时,它将根据远程源/开发分支进行更新)。如果没有最后一个参数,您需要在每次git fetch
、git pull
、git push
时指定remote和branch,例如git pull origin dev
以使用远程dev更新本地分支git checkout-b“Us1DevBranch”
等于git branch“Us1DevBranch”
+git checkout“Us1DevBranch”
并且您的命令origin/dev
的最后一个参数将为这个新创建的分支设置跟踪
最后,您可以通过以下方式手动设置现有分支(如dev)的跟踪:
并且不需要为主机设置跟踪,因为克隆后会自动设置跟踪源/主机
您始终可以通过以下命令检查分支机构的跟踪信息(即我的本地分支机构跟踪哪个远程分支机构?):
git checkout dev
git branch -vv
以下命令:
git checkout dev
git branch -vv
只需执行一项工作:它将当前分支更改为dev;不会创建任何名为dev的分支。git checkout dev
,因为克隆了具有dev分支的远程分支后,您的本地分支中已经有了它
但是
是否有三份工作:
git fetch
,git pull
,git push
时,它将根据远程源/开发分支进行更新)。如果没有最后一个参数,您需要在每次git fetch
、git pull
、git push
时指定remote和branch,例如git pull origin dev
以使用远程dev更新本地分支git checkout-b“Us1DevBranch”
等于git branch“Us1DevBranch”
+git checkout“Us1DevBranch”
并且您的命令origin/dev
的最后一个参数将为这个新创建的分支设置跟踪
最后,您可以通过以下方式手动设置现有分支(如dev)的跟踪:
并且不需要为主机设置跟踪,因为克隆后会自动设置跟踪源/主机
您可以随时检查分支机构的跟踪信息(即我的loca