在没有master分支的情况下创建的Git存储库

小叶

我想为一个新项目(在VM上)创建一个新的共享git存储库。

git --bare init跑来/.../git/new_proj.git,但未在.../git/new_proj.git/refs/heads目录中创建master分支我也在sudo chmod 777 -R目录上运行,但没有帮助,在init命令之后仍然没有创建主目录

编辑:我什至尝试使用git init(没有裸标志),但仍未创建master分支。

Google在这件事上帮不上什么忙...

有人知道是什么问题吗?我缺少什么?谢谢!

星期二

到目前为止它已经在另一个答案的注释中了,但这完全是正常的:新的存储库,无论是否“裸”,都没有提交,因此也没有引用。

它确实有一个HEAD,它是HEAD在存储库(.git目录)中命名的文件,其中包含符号分支名称引用。如果您cat HEAD会看到ref: refs/heads/master,则意味着即使分支母版尚不存在,新的存储库也位于“分支母版上” 同样,这是完全正常的状态。据说此时您处于“未出生的分支”上。

当您添加一个或多个提交到这个空库,该master分支可以,如果它是一个裸露的回购协议,你可能会添加此通过git push它可以不提供master分支,所以我们不能说“不” :-)虽然平时master做的那样-来在这一点上已经存在,引用指向新的提交(或一系列提交的新提示提交)。

在任何存储库中(无论是否裸露),您都可以“位于”不存在的分支上。特别是,在普通回购中,您可以执行以下操作:

$ git checkout --orphan newbranch

其中“关于”把你newbranch(通过编写ref: refs/heads/newbranchHEAD),而不实际创建 newbranch的是,制作newbranch一个“未出生的分支”。然后,下一个提交导致newbranch存在,并且该提交没有父提交(因此是该--orphan部分):这是一个新的根提交。这是同样的方式master进入上存在它的第一次提交。

如果愿意,可以从基本机制的角度进行研究:git创建新提交时,用于更新的步骤HEAD如下:1

  1. 读取HEAD文件内容
  2. 是像这样的象征性引用ref: refs/heads/master吗?是,执行步骤4。
  3. 否(“分离的HEAD”情况):使用提交ID指定的父级创建提交,HEAD并向中写入新的SHA-1 HEAD停,我们完成了。
  4. 读取引用分支的SHA-1(例如.git/refs/heads/master,或从打包的引用中)。
  5. 如果由于分支尚不存在而没有SHA-1可用,则创建根提交,否则创建其父代为给定SHA-1的提交。将新的SHA-1写入引用的分支。停,我们完成了。

有趣的是,当ref被打包时,“活动”的(例如,您正在开发的任何分支devel)例如进入.git/packed-refs,但是会迅速用新值更新。这些新值.git/refs/heads/devel文件中存在:.git/packed-refs文件保留一个refs/heads/devel条目,但是它是陈旧的(因此被忽略)。(您不应该依赖于此:外部程序,例如shell脚本,应该使用git branchgit update-refgit symbolic-ref酌情使用读写ref-names和SHA-1值。但是,有时候,去in并直接编辑引用。将其视为相当于磁盘扇区的十六进制编辑器的现代版本。:-))


1所有这些都假设您没有创建合并提交。如果您正在合并,存储库(.git/MERGE_HEAD中的另一个文件将提供额外的合并父ID。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在没有本地存储库的情况下在远程存储库中创建分支

来自分类Dev

如何在没有默认分支的情况下修复Mercurial存储库?

来自分类Dev

可以在没有分支的情况下使用git吗?

来自分类Dev

如何在没有本地存储库的情况下使用LibGit2Sharp从网络路径获取Git Repo的分支和提交?

来自分类Dev

如何在没有 git 存储库的情况下使用本地 SPM 包?

来自分类Dev

GIT SVN:在没有错误的合并父级的情况下获取重新创建的SVN分支

来自分类Dev

在默认情况下使用squash的存储库中发现合并的git分支?

来自分类Dev

如何在不使用jgit签出的情况下在远程存储库中创建git分支

来自分类Dev

Git中的私有存储库-没有东西推送到Master分支

来自分类Dev

在没有本地更改的情况下,Git分支发散了

来自分类Dev

如何在裸露的Git存储库中创建master分支?

来自分类Dev

git rebase在这种情况下是否正确/正确(将git master与SourceSafe存储库同步)

来自分类Dev

Bitbucket:如何在不复制Master分支的情况下创建新分支

来自分类Dev

如何在不影响GIT的远程存储库的情况下将更改保留在本地分支中?

来自分类Dev

如何在不覆盖分支更新的情况下从master同步git分支?

来自分类Dev

Sphinx源文件可以在没有链接存储库的情况下被推送到ReadTheDocs吗?

来自分类Dev

可以在没有存储库的情况下使用臂架吗?

来自分类Dev

如何在没有后备存储库的情况下对从属实体执行POST

来自分类Dev

在没有JQuery的情况下将图像存储在数据库中

来自分类Dev

在没有实现的情况下覆盖 spring 存储库方法时会发生什么

来自分类Dev

在没有分支的情况下推送 git commit

来自分类Dev

在不克隆的情况下对 git 存储库中的所有文件进行分类

来自分类Dev

没有master的情况下如何使用saltstack模块?

来自分类Dev

没有master的情况下如何使用saltstack模块?

来自分类Dev

如何在有和没有ssh身份验证的情况下将Git与两个不同的存储库一起使用?

来自分类Dev

如何在没有数据库的情况下创建Yii2模型

来自分类Dev

如何在没有支持库的情况下创建导航抽屉

来自分类Dev

如何在没有数据的情况下创建MySQL数据库基准

来自分类Dev

是否可以在没有云实例的情况下创建领域数据库?

Related 相关文章

  1. 1

    在没有本地存储库的情况下在远程存储库中创建分支

  2. 2

    如何在没有默认分支的情况下修复Mercurial存储库?

  3. 3

    可以在没有分支的情况下使用git吗?

  4. 4

    如何在没有本地存储库的情况下使用LibGit2Sharp从网络路径获取Git Repo的分支和提交?

  5. 5

    如何在没有 git 存储库的情况下使用本地 SPM 包?

  6. 6

    GIT SVN:在没有错误的合并父级的情况下获取重新创建的SVN分支

  7. 7

    在默认情况下使用squash的存储库中发现合并的git分支?

  8. 8

    如何在不使用jgit签出的情况下在远程存储库中创建git分支

  9. 9

    Git中的私有存储库-没有东西推送到Master分支

  10. 10

    在没有本地更改的情况下,Git分支发散了

  11. 11

    如何在裸露的Git存储库中创建master分支?

  12. 12

    git rebase在这种情况下是否正确/正确(将git master与SourceSafe存储库同步)

  13. 13

    Bitbucket:如何在不复制Master分支的情况下创建新分支

  14. 14

    如何在不影响GIT的远程存储库的情况下将更改保留在本地分支中?

  15. 15

    如何在不覆盖分支更新的情况下从master同步git分支?

  16. 16

    Sphinx源文件可以在没有链接存储库的情况下被推送到ReadTheDocs吗?

  17. 17

    可以在没有存储库的情况下使用臂架吗?

  18. 18

    如何在没有后备存储库的情况下对从属实体执行POST

  19. 19

    在没有JQuery的情况下将图像存储在数据库中

  20. 20

    在没有实现的情况下覆盖 spring 存储库方法时会发生什么

  21. 21

    在没有分支的情况下推送 git commit

  22. 22

    在不克隆的情况下对 git 存储库中的所有文件进行分类

  23. 23

    没有master的情况下如何使用saltstack模块?

  24. 24

    没有master的情况下如何使用saltstack模块?

  25. 25

    如何在有和没有ssh身份验证的情况下将Git与两个不同的存储库一起使用?

  26. 26

    如何在没有数据库的情况下创建Yii2模型

  27. 27

    如何在没有支持库的情况下创建导航抽屉

  28. 28

    如何在没有数据的情况下创建MySQL数据库基准

  29. 29

    是否可以在没有云实例的情况下创建领域数据库?

热门标签

归档