我有一个运行git 1.7的私人服务器 当我
git init
一个文件夹并不会创建主分支。 因为当我这样做时:
git branch
它没有列出任何内容。 当我执行以下操作时:
git --bare init
它创建了文件。 当我输入时
git branch master
它说:
fatal: Not a valid object name: 'master'.
我有一个运行git 1.7的私人服务器 当我
git init
git branch
它没有列出任何内容。 当我执行以下操作时:
git --bare init
git branch master
它说:
fatal: Not a valid object name: 'master'.
git init
命令时,它不会创建一个主分支。这是正确的行为,因为在提交任何内容之前,Git不会创建master
分支。当我执行git --bare init
命令时,它会创建文件。非裸的git init
命令也会在您项目的根目录中的隐藏的.git
目录中创建相同的文件。当我输入git branch master
命令时,它会显示“fatal: Not a valid object name: 'master'”。这也是正确的行为,因为在提交之前,没有master分支。如果您想要问一个问题,那么我假设您想问如何创建初始提交和master
分支。您需要将一个或多个文件添加到您的目录,并使用git add
命令将它们准备好进行提交。然后使用git commit
命令创建您的初始提交和master
分支。请注意保留原文中的HTML标签。.git/HEAD
,将refs/heads/master
更改为refs/heads/main
,但是没有任何理由这样做。只需在第一次提交后重命名您的分支即可。 - user229044git checkout -b <分支名>
来更改HEAD,而无需编辑文件。 - Superfly Jon将Superfly Jon的评论复制到答案中:
要在master
分支上创建一个新的分支而不进行提交,您可以使用以下命令:
git checkout -b <branchname>
git branch
只显示有提交记录的分支。尝试使用 git status
命令来查看当前分支名称,即使它没有任何提交记录。 - krubo一旦您进行了第一次提交,Git会创建一个主分支。如果仓库中没有代码,就没有需要创建分支的必要。
在创建新分支之前,您需要在主分支上至少提交一次。
首先,当你创建一个“裸仓库”时,你不会在其中进行任何工作(它不包含工作副本,因此git branch
命令无用)。
现在,即使执行了git init
,也没有master
分支的原因是没有提交:当你创建第一个提交后,你将拥有一个master
分支。
.git/HEAD
可能包含 ref: refs/heads/master
,但 .git/refs/heads/master
不存在。 - Borealidgit add .
或git add <file-name>
将文件添加到缓存区,
然后使用git commit -m "committed successfully"
提交更改。mkdir testrepo
然后 cd testrepo
然后 git init
然后 git add .
然后 git commit -m "committed successfully"
然后 git branch feature-branch
,但我仍然收到相同的错误提示:“fatal: not a valid object name: 'master'”。 - izogfifgit init --bare new.git
cd new.git
git checkout -b next
fatal: this operation must be run in a work tree
git clone --bare <gitURL> myrepo.git
Cloning into bare repository 'cpp.git'...
remote: Enumerating objects: 5, done.
remote: Counting objects: 100% (5/5), done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 5 (delta 0), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (5/5), 12.68 KiB | 1.06 MiB/s, done.
cd myrepo.git
git worktree add /work/suites/cpp/next next
Preparing worktree (checking out 'next')
HEAD is now at 4255e58 Initial commit
请尝试在主分支中创建任何文件并提交。然后创建其他分支。应该可以正常工作。
不是传统的答案,但我也有一个解决方案。 对于这个完全相同的问题,我注意到当我在已经存在的存储库中创建另一个存储库时,会出现这个问题。
所以如果你克隆了一个存储库,然后再次执行git init
,就会导致这个问题。然后你需要删除整个文件夹并重新克隆它。谢谢。
只需执行 git checkout -b branchname
即可创建分支。
git branch newbranch
将得到相同的结果。 - Sorenfatal: your current branch 'master' does not have any commits yet
。 - Denis Howe