Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 致命:引用的格式无效:';参考文献/负责人/硕士';_Git - Fatal编程技术网

Git 致命:引用的格式无效:';参考文献/负责人/硕士';

Git 致命:引用的格式无效:';参考文献/负责人/硕士';,git,Git,当我尝试以下任何命令时: git branch git branch -a git pull git log --pretty=format:"%C(yellow)%h%Cred%d\\ %Cblue[%cn]\\%Creset %s" --decorate --graph git log --online --decorate --graph 我得到了错误 fatal: Reference has invalid format: 'refs/heads/master~' 但以下命令起作用:

当我尝试以下任何命令时:

git branch
git branch -a
git pull
git log --pretty=format:"%C(yellow)%h%Cred%d\\ %Cblue[%cn]\\%Creset %s" --decorate --graph
git log --online --decorate --graph
我得到了错误

fatal: Reference has invalid format: 'refs/heads/master~'
但以下命令起作用:

git log --oneline --graph # removed --decorate
git log
运行

find ./ -iname "*conflict*"
不会返回任何结果

find./-name“*master*”|grep“\./\.git”
的输出为

./.git/logs/refs/heads/master
./.git/logs/refs/heads/master~
./.git/logs/refs/remotes/origin/master
./.git/refs/heads/master
./.git/refs/heads/master~
./.git/refs/remotes/origin/master
不知道这是否有帮助,但我在那里看到了
master~


你知道哪里不对吗?我还可以向您提供哪些其他信息?

我认为您的.git/HEAD文件的内容无效。检查此文件,如果它的内容中附加了瓷砖,请将其删除。例如,在我的一个存储库中:

$ cat .git/HEAD 
ref: refs/heads/master
.git中的一些文件是指向其他类似引用的指针。Git读取它们,取消对内容的引用,并将其作为对象引用继续


可能是服务器端出现了错误,所以您也应该检查一下。

看起来某个实用程序已经创建了正常分支文件(
.git/refs/heads/…
)的“备份”,并带有一个尾随字符
~
。Git中不允许使用分支名称,因为它们会与获取祖先的后缀符号
…~N
冲突

不需要查询所有引用的命令(例如不带
--decoration
git log master
)正在工作,但是任何试图列出所有分支的命令都会被无效的分支名称阻塞

只需删除文件
/.git/refs/heads/master
(备份后),您就可以开始了。

删除编辑器交换/备份文件 您找到的文件与git无关-它们是由编辑器在不使用
~
打开文件名时创建的


只需删除它们,如果您想防止将来出现此问题,只需将编辑器配置为不在与您正在编辑的文件相同的目录中创建交换/备份文件。

git co master有效吗?@AkashAgrawal
co
不是有效的git命令,我想您可能是指
签出
,是吗?@Cupcake是的,很抱歉。我真的忘记了我有别名的实际命令。@AkashAgrawal这是git checkout master的输出:
git checkout master
:我也有类似的事件。你有没有对那个目录运行过rsync?我的直觉是,在我的例子中,这与rsync有关。执行
cat.git/HEAD
显示的
ref:refs/heads/master
与您的一样。我可以向您展示任何其他输出吗?这对我来说很有效(Dropbox是罪魁祸首),我删除了.git\refs\heads\master(1)和.git\refs\remotes\origin\master(1),现在它可以工作了!这对我也有用。但在我的例子中,它被称为“大师(大师(大师(大师)”,因为俄罗斯人在OS中的文化背景。