这是一个场景:
我们有一个默认的分支Master,我们以此为基础进行工作,创建分支并向上推等等。
我们现在在 Master 上创建了一个 Develop 分支,并将其设置为默认的开发分支。
我想知道的是,现在如何知道我的git pull命令是否正在通过命令行从默认分支请求更改?或指向这个新的默认分支?
我做了什么: -由于创建了新的默认分支git,因此从原点/主节点拖入我的主节点
还有任何neww分支,是来自Master还是Develop?
如您所见
On branch master
Your branch is up to date with 'origin/master'.
nothing to commit, working tree clean
PS C:\Users\dir\Documents\GitHub\repo> git log
commit 867cxx
fd956f73dc91d0022b (HEAD -> master, origin/master, origin/develop, origin/HEAD)
更新: 默认分支的这种更改是在克隆存储库之后发生的。
答案 0 :(得分:20)
从GitHub克隆存储库时,默认分支存储在HEAD
文件中:
$ cat .git/refs/remotes/origin/HEAD
ref: refs/remotes/origin/master
如果克隆回购协议后,在GitHub 上对默认分支进行了 changed 更改,则它不会自动更新,但可以在本地轻松修复:
git remote set-head origin -a
-a
将set refs/remotes/<name>/HEAD according to remote
或显式地到命名分支:
git remote set-head origin develop
现在,HEAD
指向新位置:
$ cat .git/refs/remotes/origin/HEAD
ref: refs/remotes/origin/develop
答案 1 :(得分:17)
通过git 2.28
,您可以使用以下命令设置全局配置
git config --global init.defaultBranch {branchName}
用默认分支名称替换{branchName}
现在,每当您创建新的git repo时,默认分支就是这个
我的视频中有更多详细信息-https://www.youtube.com/watch?v=YccHk6QlRss
答案 2 :(得分:1)
据我所知,git没有“默认分支”的概念。诸如GitHub之类的用户界面确实具有默认分支,这意味着在您打开网页时,默认情况下会看到某个分支(通常是主分支)。但是就git而言,master分支并不特殊,它只是赋予第一个分支的名称。
要创建新分支,请在-b
中使用checkout
标志,如下所示:
git checkout -b develop
git branch
命令将列出所有现有分支,并且在当前分支旁边带有*
。您所做的所有提交都会添加到当前分支中。
在您的问题中,您提到从远程拉出。相关概念是“跟踪分支机构”;请参阅https://git-scm.com/book/id/v2/Git-Branching-Remote-Branches中具有该名称的部分。
简而言之,当您这样做
git pull origin master
它将从master
存储库的origin
分支中提取更改到当前检出的任何分支中。如果需要,您可以设置远程跟踪,以便git可以根据已签出的分支知道要从何处提取信息。
例如如果您有一个远程develop-remote
分支和一个本地develop-local
分支,则可以通过以下方式将本地分支设置为跟踪远程分支:
git checkout develop-local
git branch --set-upstream-to origin/develop-remote
此外,它们可能都简称为develop
,为清楚起见,在这里我将它们区分开。
最后,我应该提到,当您进行git pull <url-of-repo>
时,会自动建立远程跟踪。
P.S。有关遥控器的更多信息(例如origin
是什么意思?),请参见https://git-scm.com/book/en/v2/Git-Basics-Working-with-Remotes
答案 3 :(得分:0)
如果要签出到新的默认分支,请运行:
git checkout <name-of-new-branch>
(假设远程仓库中已经存在上述分支)
答案 4 :(得分:0)
在 GitHub 上,导航到存储库的主页。
在您的存储库名称下,点击 ⚙︎设置。
在左侧菜单中,单击“分支”。
在“默认分支”下,点击默认分支名称右侧。
使用下拉菜单,然后单击分支名称。
使用下拉菜单,然后单击分支名称。简单?