问题标签 [git-push]

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 投票
11 回答
155472 浏览

git - Heroku:如何将不同的本地 Git 分支推送到 Heroku/master

Heroku 的策略是忽略除“master”之外的所有分支。

虽然我确信 Heroku 的设计者有充分的理由支持这项政策(我猜是为了存储和性能优化),但作为开发人员的结果是,无论我在处理什么本地主题分支,我都想要一个简单的方法将 Heroku 的 master 切换到该本地主题分支并执行“git push heroku -f”以覆盖 Heroku 上的 master。

我从阅读http://progit.org/book/ch9-5.html的“Pushing Refspecs”部分得到的是

我真正想要的是一种在配置文件中进行设置的方法,以便“git push heroku”始终执行上述操作,将local-topic-branch替换为我当前分支的名称。如果有人知道如何做到这一点,请告诉我!

当然,需要注意的是,只有我是唯一可以推送到 Heroku 应用程序/存储库的人时,这才是明智的。测试或 QA 团队可能会管理这样的存储库来尝试不同的候选分支,但他们必须进行协调,以便他们都同意在任何一天他们将推送到哪个分支。

不用说,拥有一个单独的远程存储库(如 GitHub)也是一个非常好的主意,而没有此限制来备份所有内容。我将其称为“原点”并为 Heroku 使用“heroku”,这样“git push”总是将所有内容备份到原点,而“git push heroku”将我当前所在的任何分支推送到 Heroku 的主分支,并覆盖它如有必要。

这行得通吗?

在我开始实验之前,我想听听更有经验的人的意见,尽管我想我可以在 Heroku 上创建一个虚拟应用程序并进行实验。

至于获取,我真的不在乎 Heroku 存储库是否是只写的。我仍然有一个单独的存储库,例如 GitHub,用于备份和克隆我所有的工作。

脚注:这个问题与使用 Heroku 的分支策略的 Good Git 部署相似,但又不完全相同?

0 投票
1 回答
73 浏览

git - 是否可以同时推送到 2 个或更多远程存储库?

是否可以同时推送到 2 个或更多远程存储库?

我只想镜像主存储库,即使不是全部,大部分的拉取都来自这里。

0 投票
1 回答
1674 浏览

git - git:是否可以保存空运行的打包对象并稍后推送它们?

我正在尝试推送一堆包含大量代码和几千个 MP3 和 PDF 文件的提交(每个文件范围为 5-40 MB)。

Git成功打包对象:

但由于一些未知的原因,它未能发送推送。

问题是重新打包文件需要很长时间(我使用的是电池供电的笔记本电脑,打包大约需要 20 分钟)。

所以我想我的问题可以是这样的短语:

  1. 是否可以保存在空运行中创建的打包对象?
  2. 保存后,是否可以推送那些打包的对象并避免重新打包?

我在 git 手册和其他地方查找了它,但找不到任何结论。

任何帮助或指针表示赞赏。


编辑- 添加了错误消息:

我第一次从命令行(`git push')运行它时,我得到了这个错误:

第二次(git push origin master -v)我收到此错误:

请注意,在这两种情况下,压缩完成后,我都得到了这个对话框:

当对话框打开时,控制台显示如下(“Writing objects”行在单击 OK 后被删除):


编辑 2 -git gc按照 Charles Bailey 的建议运行后,我在大约 1.5 小时后得到以下输出:

0 投票
4 回答
5694 浏览

git - 无法推送到 git 存储库。它在“Writing Objects: 100%”之后挂起

我正在使用以下命令运行 git 守护进程。

我能够克隆和提取更新,但是当我尝试推送时,我得到了

,然后挂起

我目前正在使用 git 版本 1.7.0.4

0 投票
2 回答
9681 浏览

git - 为什么 git push 失败并显示“操作超时”?

0 投票
3 回答
42092 浏览

git - 如何指定在 git 中使用哪个 SSH 密钥进行 git push 以便将 gitorious 作为镜像?

我有一个托管在 git.debian.org (alioth) 上的项目,我想配置一个 post-receive 挂钩来更新http://gitorious.org上的存储库镜像

我想我将不得不使用git push --mirror gitorious

现在,我需要在 gitorious 上授权 Alioth 才能使推送成功。我怎么做?

我想我需要在 gitorious 上配置一个用户并为其创建一个 ssh 密钥。然后当我在 post-receive 钩子中执行 git push 时,确保使用了这个 ssh 密钥。

我可以使用 a~/.ssh/config但问题是许多用户可以推送 alioth,每个人都必须登录并配置~/.ssh/config. 相反,我想要一个命令行选项或一个环境变量来告诉 ssh 使用哪个键。我可以这样做吗?

另外,您还有其他想法如何实现镜像?而且,是否可以反过来配置它(gitorious push on alioth)?

0 投票
4 回答
11686 浏览

git - Git 接收/更新钩子和新分支

我的“更新”挂钩有问题。在新分支的情况下,它会获得 00000000000000000000000000000000000000000 作为“oldrev”。我不知道如何处理这种情况。

我们有这样的要求,即每条提交消息都引用一个有效的 Jira 问题。所以我在我们的中央存储库上安装了一个“更新”钩子。该钩子有一个“oldrev”和一个“newrev”。然后我将它们传递给“git rev-list”,如下所示:

git rev-list $oldrev..$newrev

这给了我所有转速的列表,然后我可以遍历它,并做我需要做的任何事情。

问题是,当用户推送一个新分支时,钩子将 0000000000000000000000000000000000000000 作为 oldrev。而“git rev-list”只是抱怨:

fatal: Invalid revision range 0000000000000000000000000000000000000000..21bac83b2

那么如何获取该新分支上所有转速的列表呢?我已经在网上搜索了很长时间,但一无所获。我发现的示例挂钩

  • 不处理问题,并因上述错误消息而失败
  • 错误地尝试通过将 oldrev 设置为 "" 来解决问题,这会从 rev-list 返回错误的结果
  • 当他们遇到那个oldrev时就放弃

这些听起来都不是特别令人兴奋。

那么有人知道在这种情况下如何得到正确的答案吗?我正在考虑向 git 查询“给我所有可以从 newrev 访问的转速,但不能从任何其他分支(=除新分支之外的所有分支)”。但是,如果从新分支合并到任何旧分支,即使这样也会给出错误的答案。

0 投票
2 回答
197 浏览

git - 从 GIT 中删除目录后如何提交

有几篇文章讨论了从 GIT 中删除文件或目录 - 但它们并没有解释如何将这些更改推送到主存储库中。

例如,可以很好地删除目录,但是当我尝试将此更改推送到主 Git 存储库时,我被拒绝:

将其实际推送到主仓库并实际删除该目录的最后一步是什么?

0 投票
2 回答
845 浏览

git - 使用 git 删除不在本地存储库中的分支

我在 GitHub 上 fork 时得到的一个 git repo 上有一堆分支。我不希望我的 GitHub 分支有这些分支。

有什么方法可以删除我的 GitHub 存储库中不在本地存储库中的所有分支?

0 投票
2 回答
8071 浏览

git - 如何将 git 配置为从 http 中提取并在一个“远程”中推送 ssh?

从 http 中提取以逃避身份验证(因此,如果我不使用 ssh.keygen,则无需输入密码)。

通过身份验证推送 ssh。