【发布时间】:2019-12-08 23:31:56
【问题描述】:
我有一个带有 master 和 branch1 的 git repo。 在branch1-我在两个位置克隆,我必须将它重置为一个位置的前一个提交,然后强制将其推送到远程并将其提取到另一个位置并重置它。我必须在一些带有子进程的 python 脚本中完成它。因为我能够在 location1 中重置并强制推送到远程,但我无法使用 https URL 中的访问令牌在 location2 中获取它。如果我可以直接提供凭据,它可以正常工作,但不能使用访问令牌 URL。
试过了:git fetch https://<access-token>@repo-url :origin/branch1
哪个输出
- 分支 HEAD -> FETCH_HEAD
但是 origin/branch1 没有去到远程头所在的提交,所以我无法重置那个特定的提交。 而:
git fetch
prompt - username <entered>
prompt - password <entered>
将 origin/branch1 设置为我想要的提交,然后我可以重置它。
我希望通过某种方式运行git fetch 命令(可以包括凭据或访问令牌)并获取分支1 上的远程更改,以便我可以重置它。当我从 python 子进程运行时,我无法为提示提供凭据。
【问题讨论】:
-
你不需要在 git 中获取“在一个分支中”。您只需从远程获取,并且该远程上的所有已知分支都将作为源来更新您的(本地,但不是您的)远程跟踪分支。然后,您可以轻松地合并/rebase/重置所有您想要获得您的本地分支所需状态的所有内容。
标签: git subprocess python-3.7 git-fetch