每当我尝试使用上传我的文件时,git push -u origin main
我都会收到如下错误
error: src refspec main does not match any
error: failed to push some refs to 'github.com:xxxxxx/xxx-project.git'
Run Code Online (Sandbox Code Playgroud)
但如果我这样做,git push -u origin master
它就可以完美运行并将我的文件上传到名为master
. 在检查 .git/refs/heads
我的项目时,我看到只有一个命名的文件,master
所以我执行了git remote update
它添加.git/refs/remotes/origin/main
但仍然git push -u origin main
不起作用。
我试过git push origin HEAD:main
但产生了错误:
! [rejected] HEAD -> main (non-fast-forward) error: failed to push some refs to 'github.com:xxxxxxx/xxx-project.git' hint: Updates were rejected because a pushed branch tip is behind …
假设我想编写一个小助手,它允许将一些元数据附加到存储库中,这种方式可以通过refs
. 简单示例(一个git-notes克隆原型,甚至不将注释附加到任何其他 git 对象):
hash=$(echo "Just a comment" | git hash-object -w --stdin)
git update-ref refs/comments/just $hash
Run Code Online (Sandbox Code Playgroud)
即我blob
用哈希创建一个hash
并引用它,因为refs/comments/just
这样git fsck --unreachable
不会抱怨它,git gc
也永远不会prune
是对象。
但这当然是一个非常简单的例子,实际上我对更复杂的功能感兴趣。在那里,我的问题是,我可以“合法”做什么,我绝对应该避免什么?
例如,SE 上的一些帖子是关于用户必须从重复tree
条目中恢复的。因此,“不要”就是“不要创建tree
具有重复条目的条目”。另一个例子是“你确保你的对象是可到达的,所以git prune
不会删除它们。” 还有什么?
我可以创建自定义对象类型吗?对树中的 blob 使用“无效”文件模式?在哪里可以找到概览?或者我应该git-fsck
手动检查's source 以查看什么构成错误(哪些是可以忽略的)?
我在采取新措施时面临以下问题。( git pull
)
错误:无法更新引用“refs/remotes/origin/xyz”:无法为“.git/logs/refs/remotes/origin/xyz”创建目录:没有这样的文件或目录
我检查了特定位置,既没有权限问题,也不存在这样的目录。
Jfyi 我已经搜索过类似的线程,但这些线程对我来说不起作用,其中大多数与追加、删除等相关。
我对此深感困惑,任何帮助将不胜感激。
考虑以下存储库。它有很多团队成员的私有分支,都在refs/heads/team/
命名空间下,我不想获取这些分支,但我仍然想获取所有其余的分支,包括该team
命名空间之外任何可能新创建的分支。
$ git ls-remote http://gerrit.asterisk.org/asterisk refs/heads/* | wc -l
217
$ git ls-remote http://gerrit.asterisk.org/asterisk refs/heads/* | grep -v refs/heads/team/ | wc -l
32
Run Code Online (Sandbox Code Playgroud)
我正在获取fetch = +refs/heads/*:refs/remotes/golden/*
,但这些私有分支只是压垮了我的refs/remote/golden
命名空间,使其更难以概览,并且还需要更多空间用于本地存储库。
是否可以获取refs/heads/*
但排除refs/heads/team/*
?
在不同的地方,寻找有关如何从 GitHub Pull Request 创建本地分支的说明,我看到了两个版本:
git fetch upstream refs/pull/PR_ID/head:NEW_LOCAL_BRANCH
Run Code Online (Sandbox Code Playgroud)
和
git fetch upstream pull/PR_ID/head:NEW_LOCAL_BRANCH
Run Code Online (Sandbox Code Playgroud)
我的问题是,地址中包含“”和不包含“”有什么区别?refs
两者似乎都工作正常。
我在用
git fetch origin feature/blabla
Run Code Online (Sandbox Code Playgroud)
真正具体地说明我想要获取什么。
feature/blabla
。git fetch
only(假设分支已签出)也获取标签。是否可以使用我的版本并同时获取标签?(我不想用 获取所有标签git fetch --tags
)。尤其是在另一个分支上时,这非常有用。