如何在不添加 Remote 的情况下将提交推送到 git 存储库?

How to push commit to git repository without adding Remote?

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

所以,基本上我想执行以下步骤:

  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="adding tmp file"
  8. git push origin tmp-branch

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

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

我不熟悉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