【问题标题】:How to push commit to git repository without adding Remote?如何在不添加远程的情况下将提交推送到 git 存储库?
【发布时间】:2019-03-05 05:01:25
【问题描述】:

我有一些存储库,例如https://nickname@bitbucket.org/nickname/repo-name.git。我需要使用 Java 将一些数据推送到这个 repo。

所以,基本上我想做这些步骤:

  1. 创建临时目录 (tmp_path == /temp/tmp/dir)
  2. cd tmp_path
  3. git 初始化
  4. git远程添加源https://nickname@bitbucket.org/nickname/repo-name.git
  5. 使用所需数据创建临时文件 (filanme == tmpfile.txt)
  6. git 添加文件名
  7. git commit --message="添加 tmp 文件"
  8. git push origin tmp-branch

但是有一个问题。我 cannot 从 Java 制作“cd”。所以我需要另一个解决方案。

有没有办法在没有本地 git 文件夹的情况下将一些数据推送到存储库?

【问题讨论】:

  • 您打算启动新进程来执行这些命令吗?如果是这样,是的,有一种方法可以从特定目录启动进程:docs.oracle.com/javase/8/docs/api/java/lang/…。但是有 Java API 可以从 Java 中使用 git,而无需启动进程。由于您没有发布任何代码,因此不清楚您到底想做什么。
  • @JBNizet 我的最终目标是将 List 的 userData 推送到特定 git repo 的某个分支。谢谢你的链接,我会看到它。

标签: java git repository bitbucket


【解决方案1】:

我不熟悉Java,所以我可以在没有cd的情况下发出命令。

git init /temp/tmp/dir
# create tmpfile.txt in /temp/tmp/dir
git --git-dir=/temp/tmp/dir/.git --work-tree=/temp/tmp/dir add tmpfile.txt
git --git-dir=/temp/tmp/dir/.git commit --message "adding tmp file"
# your question says without adding remote, so we skip "git remote add"
git --git-dir=/temp/tmp/dir/.git push https://nickname@bitbucket.org/nickname/repo-name.git HEAD:refs/heads/tmp-branch

【讨论】:

    猜你喜欢
    • 2010-09-20
    • 2014-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-09
    • 2013-04-08
    相关资源
    最近更新 更多