这是一个场景:
我们有一个默认的分支母版,我们以此为基础进行工作,创建分支并上推等。
现在,我们已经在Master之外创建了一个Develop分支,并将其设置为默认开发分支。
我想知道的是,现在我怎么知道我的git pull命令是否正在通过命令行从默认分支请求更改?或指向这个新的默认分支?
我做了什么:-自从创建新的默认分支git以来,我就从origin / master引入了我的master
另外,任何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)
Run Code Online (Sandbox Code Playgroud)
更新: 默认分支的此更改在克隆存储库后发生。
小智 44
有了git 2.28你可以设置一个全局配置使用该命令
git config --global init.defaultBranch {branchName}
替换{branchName}为默认分支名称,现在每当你创建一个新的 git repo 时,默认分支就是这个。
我的视频中有更多详细信息:https : //www.youtube.com/watch?v=YccHk6QlRss
fri*_*mle 29
从 GitHub 克隆存储库时,默认分支将存储在HEAD文件中:
$ cat .git/refs/remotes/origin/HEAD
ref: refs/remotes/origin/master
Run Code Online (Sandbox Code Playgroud)
如果在克隆 repo后更改了 GitHub 上的默认分支,则不会自动更新,但可以在本地轻松修复:
git remote set-head origin -a
Run Code Online (Sandbox Code Playgroud)
-a 将要 set refs/remotes/<name>/HEAD according to remote
或者显式到一个命名分支:
git remote set-head origin develop
Run Code Online (Sandbox Code Playgroud)
现在,HEAD指向新位置:
$ cat .git/refs/remotes/origin/HEAD
ref: refs/remotes/origin/develop
Run Code Online (Sandbox Code Playgroud)
据我所知,git没有“默认分支”的概念。诸如GitHub之类的用户界面确实具有默认分支,即在您打开网页时,默认情况下会看到某个分支(通常是主分支)。但是就git而言,master分支并不特殊,它只是第一个分支的名称。
要创建新分支,请使用-b带有的标志checkout,如下所示:
git checkout -b develop
Run Code Online (Sandbox Code Playgroud)
该git branch命令将列出所有现有分支,并*在当前分支旁边列出。您所做的所有提交都会添加到当前分支中。
在您的问题中,您提到从远程拉出。相关概念是“跟踪分支机构”;请参阅https://git-scm.com/book/id/v2/Git-Branching-Remote-Branches上具有该名称的部分。
简而言之,当你做
git pull origin master
Run Code Online (Sandbox Code Playgroud)
它将把更改从存储库的master分支拉origin入当前签出的任何分支。如果愿意,您可以设置远程跟踪,以便git可以根据已签出的分支知道要从何处提取信息。
例如,如果您有一个远程develop-remote分支和一个本地develop-local分支,则可以通过以下方式将本地分支设置为跟踪远程分支:
git checkout develop-local
git branch --set-upstream-to origin/develop-remote
Run Code Online (Sandbox Code Playgroud)
同样,它们可能都被简单地称为develop,为了清楚起见,在这里我将它们区分开。
最后,我要提到的是,当您执行时git pull <url-of-repo>,会自动建立远程跟踪。
PS有关遥控器的更多信息(例如,这origin是什么意思?),请参阅https://git-scm.com/book/en/v2/Git-Basics-Working-with-Remotes
| 归档时间: |
|
| 查看次数: |
8026 次 |
| 最近记录: |