标签: refspec

Git错误:src refspec master与任何错误都不匹配:无法推送一些引用

我试图在BitBucket上添加一个文件到我的存储库,我遇到了麻烦.

我正在使用GIT,这就是我输入的内容

$ cd lis4368/assignments
$ git remote
$ git remote -v
$ git remote rm origin
Run Code Online (Sandbox Code Playgroud)

然后我输入(这是BitBucket告诉我进入的)

$ git remote add origin https://cpb09e@bitbucket.org/cpb09e/cpb09e.git
$ git push -u origin master
Run Code Online (Sandbox Code Playgroud)

我一直收到此错误消息:

error: src refspec master does not match any.
error: failed to push some refs to 'https://cpb09e@bitbucket.org/cpb09e/cpb09e.git'
Run Code Online (Sandbox Code Playgroud)

有人请求帮助我吗?我已经尝试了从git commit到rm -rf*的所有内容,但我无法完成任何工作.

git bitbucket git-push refspec

49
推荐指数
2
解决办法
9万
查看次数

与Gerrit一起使用时如何为Git配置特定的上游push refspec?

我正在使用Gerrit Code Review设置Git,并且正在寻找一种方法,为可能不熟悉Git的用户提供必要的Git命令.

我目前用于启动新功能分支的命令基本上是(假设Gerrit是origin):

git checkout baseline
git pull
git checkout -b work1234
git push -u origin work1234
Run Code Online (Sandbox Code Playgroud)

这将启动一个新的工作包work1234从一些baseline分支,最后的推动在Gerrit中创建分支并设置上游.所以.git/config看起来像:

[branch "work1234"]
        remote = origin
        merge = refs/heads/work1234
Run Code Online (Sandbox Code Playgroud)

现在,Gerrit希望将新的提交审查推送到特殊的refspec,refs/for/work1234例如.我可以手动执行以下操作:

git push origin work1234:refs/for/work1234
Run Code Online (Sandbox Code Playgroud)

我想要做的是找到一些设置方法,.git/config以便plain git push将当前分支推送到Gerrit所需的远程refspec.我看过以下几个git config方面:

  • branch.<name>.* - 似乎没有任何特定的选项来设置push refspec
  • push.default- 我想要upstream在这里
  • remote.<name>.push- 我refs/heads/*:refs/for/*在这里试过但git push总是想在这种情况下推送所有本地分支,而我只想要当前的分支

如果我不能让Git的本身做到这一点,我会写一个小包装脚本,完全指定refspecs.但是,如果Git能够本地推向正确的位置会更好.

git push gerrit refspec

17
推荐指数
1
解决办法
8839
查看次数

git pull origin master返回致命:refspec无效

这是问题所在:

每当我这样做

$ git pull 'https://github.com/username/reponame.github.io.git'

其次是网址我没有遇到任何问题,但是当我这样做时

git pull origin master 'https://github.com/username/reponame.github.io.git'

然后是它返回的url

fatal: Invalid refspec 'https://github.com/username/reponame.github.io.git'

这是什么意思,我该如何解决它?

git macos terminal github refspec

9
推荐指数
1
解决办法
3万
查看次数

获取Gerrit Change的最新refspec

如何通过单个命令获取关于gerrit更改的最新refspec.我需要输出为"refs/changes/11/1234/4".是否有相同的git命令

我知道ssh命令结合gerrit查询和一些脚本可以获得这个,但想知道是否有更好的方法来做同样的事情.以下是我将用于获取refspec的ssh命令.

ssh -p $ REVIEW_SERVER_PORT $ GERRIT_REVIEW_SERVER gerrit query --format = TEXT --current-patch-set $ CHANGE_SHA | grep ref.

同样,我也想获得gerrit改变的最新补丁

git ssh gerrit refspec

9
推荐指数
1
解决办法
5579
查看次数

Git推送命令,遇到错误-fatal: invalid refspec 'https://github.......git'

我在master分支中并添加了远程分支,之后我无法将数据从本地推送到远程:

$ Git remote add master https://....git

$ Git push origin master https:// ...git
Fatal: invalid refspec 'https://...git'
Run Code Online (Sandbox Code Playgroud)

git push refspec

9
推荐指数
1
解决办法
4万
查看次数

src refspec~与任何匹配

嗨,我想把东西推到特定的远程分支

我做的是当地的

git clone https://~~~.Something
cd https://~~~.Something
Run Code Online (Sandbox Code Playgroud)

我可以使用访问特定分支

git checkout origin/[branch]
Run Code Online (Sandbox Code Playgroud)

我想对我的特定分支起源/ [分支]提交一些东西但是当我尝试使用by来推送一些东西时

git push origin [branch]
Run Code Online (Sandbox Code Playgroud)

我收到了这个错误

error: src refspec [branch] does not match any.
error: failed to push some refs to 'https://github.com/kkammo/yonseitree.git'
Run Code Online (Sandbox Code Playgroud)

我试图解决这个问题,但我找不到任何解决方案...所以PLZ帮我TT

git clone push git-checkout refspec

7
推荐指数
1
解决办法
4万
查看次数

通过跟踪分支向Gerrit"git push"

推动对Gerrit的更改需要相当深奥的命令

git push origin HEAD:refs/for/branchname

我们编写了这个脚本,但我正在寻找一种本地化的方法.使用git强大的配置,看起来我可以预先配置它的大部分[1],这样就git push足够了......差不多.我坚持参考remote.<name>.pushrefspec.

我已经可以创建一个跟踪主题分支,以便git pull(没有其他参数)将更改从上游远程转移到我的主题分支.但是对于Gerrit,push和fetch引用refspecs是不一样的:一个从中获取(合并)refs/heads/trackbranch,但是一个推送到refs/for/trackbranch[2]

我可以配置pushrefspec remote.<name>.push,但语法非常基本:如果我放 push = refs/heads/*:refs/for/*

然后,这将尝试推动我的t-foo主题分支refs/for/t-foo.但是git有t-foo跟踪的信息trackbranch.我可以定义一个refspec,以便git自动尝试将任何内容推t-foo送到它refs/for/trackbranch吗?

我们目前正在使用脚本来执行此操作,我想我可以为每个主题分支定义推送refspec(可能通过更多脚本).我希望有一种本地的git方式,这样我们就不需要为我们的团队依赖更多的自定义内部脚本了.

[1]通过git checkout origin/upstream_branch -b topic_branch在现有分支中定义跟踪分支git branch --set-upstream-to origin/upstream_branch

[2]推动refs/for/*创建变更集以供审核.有了适当的权限,人们可以推动refs/heads/*绕过审查,但这否定了Gerrit的大部分观点.

git push gerrit refspec

5
推荐指数
1
解决办法
1021
查看次数

是否有一个 git 命令可以解决错误:未找到远程分支 'refs/heads/foo/bar' ?

在我的情况下,我正在跟踪其他人合并和删除的远程修补程序分支。

我已经删除了本地分支,但是当我拉取时,我仍然收到上述错误,因为我的 git 配置文件中有以下几行:

[remote "origin"]
...
    fetch = +refs/heads/foo/bar:refs/remotes/origin/foo/bar
    push = +refs/heads/foo/bar:refs/for/foo/bar
...
Run Code Online (Sandbox Code Playgroud)

可以通过从文件中删除这些行来解决该错误,但有没有办法从命令行执行此操作?

git pull fetch refspec

5
推荐指数
1
解决办法
1305
查看次数

将多个Git存储库与标记合并

我正在使用许多不同的Git repos,需要合并在一起.工作流程如下所示:

git remote add fork1 ...
git remote add fork2 ...
git fetch fork1
git fetch fork2
git merge fork1/master fork2/master
Run Code Online (Sandbox Code Playgroud)

这一切都很好,但我希望能够使用标签提取每个远程的特定提交:

git merge fork1/v1.0.0 fork2/v2.1.0
Run Code Online (Sandbox Code Playgroud)

永远不应该有任何合并冲突,因为每个repo都会将其更改限制在一个子文件夹中,但即使存在,章鱼合并也会导致整个事务以原子方式失败.

问题在于标签引用.正如本博文中所述(不是我的),所有标签都被莫名其妙地转储到全局命名空间中.没有办法说fork1/v1.0.0- 只是v1.0.0,如果多个存储库具有相同的标记,它们会相互挤压.

这个答案之后,我一直在研究使用refspec来解决这个问题.到目前为止,我已经提出以下建议:

git fetch fork1 refs/tags/*:refs/tags/fork1/*
Run Code Online (Sandbox Code Playgroud)

这具有使fork1的v1.0.0标签到达的预期效果fork1/v1.0.0.不幸的是,它以非命名空间的形式出现v1.0.0; git fetch在标记映射部分打印出两倍的行,并且git merge v1.0.0仍然与提取的标记合并.我无法在任何地方找到关于refspecs的好文档(Git关于该主题的文档非常无用).

如何防止多个存储库中的标记相互冲突?

如果我只是愚蠢地谈论这个问题,我也会接受其他工作流建议.我有一个核心仓库,它包含共享组件和结构,以及一些模块repos,它们是核心的完整克隆,只添加了代码.我目前的计划是让每个模块都有一个指向核心的远程指针(以保持共享部分的最新状态)以及它所依赖的每个其他模块.共享位将合并,因为它们是相同的,并且模块位将合并,因为它们是独立的.我应该遵循另一种模式吗?(我避免使用子模块,因为(a)我从来没有听说过有关它们的任何好处,而且(b)共享部分是项目目录结构的顶级部分,这使得repo结构非常笨拙.)

tags git multiple-repositories refspec

4
推荐指数
1
解决办法
888
查看次数