问题标签 [refspec]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
9288 浏览

git - 与 Gerrit 一起使用时,如何为 Git 配置特定的上游推送 refspec?

我正在使用Gerrit Code Review设置 Git,并正在寻找一种方法,让可能是 Git 新手的用户能够相对简单地使用必要的 Git 命令。

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

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

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

我想做的是找到一些方法来设置,.git/config以便一个普通git push的将当前分支推送到 Gerrit 需要的遥控器上的 refspec。我研究了以下git config领域:

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

如果我不能让 Git 自己做到这一点,我将编写一个完全指定 refspecs 的小包装脚本。但是,如果 Git 可以原生推送到正确的位置会更好。

0 投票
1 回答
5766 浏览

git - Git checkout远程仓库的远程分支

当 git clone 某个存储库时,它会从中检索所有分支:

然后,当我build1用作镜像并克隆它时,我看不到它的所有远程分支(我只看到build1本地主分支)

如何远程结帐远程分支?

我知道我可以使用命令检查 build1 镜像中的所有远程分支

将所有远程 git 分支跟踪为本地分支 ,但如果我无权访问 build1 目录怎么办?

此外,还有git ls-remote origin显示所有远程参考的命令,但是有没有什么优雅的方法可以检查远程分支的远程?

0 投票
2 回答
228 浏览

git - 是否可以分段推送 git 存储库?

我现在的连接速度非常慢,我需要将一个新分支推送到我公司的 git 服务器中。使用 SVN,如果我愿意,我可以一次将文件提交/推送到远程 SVN 服务器。过去,当我的连接速度很慢时,我可以一次上传一个文件夹,效果很好。我当然可以在 git 中使用类似的东西。

0 投票
2 回答
141746 浏览

git - Git错误:src refspec master不匹配任何错误:未能推送一些参考

我正在尝试将文件添加到 BitBucket 上的存储库中,但遇到了麻烦。

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

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

我不断收到此错误消息:

有人可以帮我吗?我已经尝试了从 git commit 到 rm -rf * 的所有方法,但我根本无法工作。

0 投票
1 回答
1160 浏览

git - 如何使用非标准 refspec 正确添加子模块?

我们正在使用 Gerrit 进行代码审查。Gerrit 将审查过的代码存储在非标准参考路径中 - refs/changes. 因此,对提交的引用看起来像refs/changes/95/295/2. 我想将 Gerrit 中的项目作为子模块添加到我的超级项目中。

我可以分两步完成:

  • 将我的项目作为子模块添加到 master 当前指向的 commit-hash
  • 执行git fetch origin refs/changes/95/295/2 && git checkout FETCH_HEAD并提交更改。

但是当我尝试检查我的超级项目并做git update --initgit 报告失败时。Git 在子模块中找不到哈希,因为refs/changes默认情况下 git 没有看到引用,并且不从它们下载对象。

好的,我可以通过git config --add remote.origin.fetch '+refs/changes/*:refs/remotes/origin/changes/*'在我的 gerrit repo 中执行来修复它,然后重试子模块更新,这样就可以了。

问题是,我可以像通常的工作流程那样一步执行“添加”和“初始化/更新”子模块吗?基本上,我需要在“clone”/“pull”/“submodule add”/“sumbodule update”执行开始之前设置 refspec 的功能。

0 投票
3 回答
343 浏览

git - 在 TortoiseGit 日志消息对话框中隐藏 git 注释

我正在与 Gerrit 和 TortoiseGit 一起工作。当我显示日志时,它显示了许多带有注释的提交

它们与我的工作提交无关。看起来它们来自参考文献“注释/评论”。我该如何隐藏它们?

0 投票
3 回答
1179 浏览

git - IntelliJ IDEA 和指定 GIT refspecs

我已经将 Eclipse 与 GIT 和 Gerrit 一起使用了很长时间,但我决定尝试一下 IntelliJ IDEA (12.1.3) 的社区版。我能够从我们的存储库中获取和提取更改,但我在 IntelliJ 中找不到可以为推送操作指定 refspecs 的选项。有没有办法在 IntelliJ 中做到这一点?

0 投票
1 回答
1415 浏览

git - 使用标签合并多个 Git 存储库

我正在使用许多需要合并在一起的不同 Git 存储库。工作流程如下所示:

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

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

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

按照这个答案,我一直在研究使用 refspecs 来解决这个问题。到目前为止,我想出了以下几点:

这具有使 fork1 的v1.0.0标签以fork1/v1.0.0. 不幸的是,它以 un-namespaced 的形式出现v1.0.0git fetch在标签映射部分打印出两倍的行数,并且git merge v1.0.0仍然与拉出的标签合并。我在任何地方都找不到关于 refspecs 的好的文档(Git 关于该主题的文档非常无用)。

如何防止来自多个存储库的标签相互冲突?

如果我只是愚蠢地处理这个问题,我也愿意接受其他工作流程建议。我有一个包含共享组件和结构的核心存储库,以及许多模块存储库,它们是核心的完整克隆,只添加了它们的代码。我目前的计划是让每个模块都有一个指向核心的远程指针(以保持共享部分的最新状态)以及它所依赖的每个其他模块。共享位会合并,因为它们相同,模块位会合并,因为它们是独立的。我应该在这里遵循另一种模式吗?(我避免使用子模块,因为(a)我从来没有听说过它们的好消息,并且(b)共享部分在项目目录结构方面是顶层,这使得 repo 结构非常尴尬。)

0 投票
2 回答
66280 浏览

macos - 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'

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

0 投票
1 回答
294 浏览

git - GIT:远程存储,硬链接和文件之间的区别://

我目前正在阅读Jon Loeliger的《使用 Git 进行版本控制》一书。

它谈到了硬链接和 2 之间的细微差别file://

如您所见,Git URL 的最简单形式是指本地文件系统上的存储库,无论是真正的物理文件系统还是通过网络文件系统 (NFS) 安装在本地的虚拟文件系统。有两种排列方式:

/path/to/repo.git

file:///path/to/repo.git

尽管这两种格式本质上是相同的,但两者之间存在细微但重要的区别。前者使用文件系统中的硬链接在当前和远程存储库之间直接共享完全相同的对象;后者复制对象而不是直接共享它们。为避免与共享存储库相关的问题,file://建议使用该表单。

起初,我确实认为我克隆的 repo./git/object文件夹是远程的链接.git/object,但我想不是。

有人可以解释一下吗?