我使用以下命令将本地分支更改推送到远程分支(在一些自动化脚本中):
#while being on main branch
git checkout -B new_local_branch_unix_timestamp
#optionally modify some files
# check if there are modified files
git diff --exit-code
# if there are changes commit and push
git commit -am 'commit message'
git push --set-upstream origin new_local_branch_unix_timestamp
# get latest local commit id
git rev-parse HEAD
# busy wait until latest remote commit id equal to latest local commit id
# latest remote commit id is extracted using
git rev-parse origin/new_local_branch_unix_timestamp
忙等待意味着应用git rev-parse origin/new_local_branch_unix_timestamp
固定次数,直到本地最后提交 id 等于远程最后提交 id。
运行git rev-parse origin/new_local_branch_unix_timestamp
以获取最新的远程提交 ID 偶尔会返回以下输出和错误。
stdout: origin/new_local_branch
sterr: fatal: ambiguous argument 'origin/new_local_branch_unix_timestamp': unknown revision or path not in the working tree. Use '--' to separate paths from revisions, like this: 'git <command> [<revision>...] -- [<file>...]'
这是非常罕见和随机的。
我总是通过删除本地存储库、重新克隆远程存储库来缓解它。然后上述步骤成功,直到下一次。
发生这种情况是否有原因,是否有更好的方法来减轻它?
可能有许多早先创建的具有相似名称的远程分支(具有相似的第一个字符,因为 unix 时间戳相似)。
这可能是sterr: fatal: ambiguous argument
git错误的原因吗?