7
A
回答
7
你完成後在結帳或列出遠程/本地分行
from git import Git
g = Git()
(可能還有其他一些命令將init初始化爲您關心的存儲庫),g
上的所有屬性請求或多或少地轉換爲git attr *args
的調用。
因此:
g.checkout("mybranch")
應該做你想要什麼。
g.branch()
將列出分支。但是請注意,這些命令的級別非常低,它們將返回git可執行文件將返回的確切代碼。因此,不要指望一個好的列表。我只是一串由幾行組成的行,並且一行有一個星號作爲第一個字符。
在庫中可能有一些更好的方法來做到這一點。例如repo.py
是一個特殊的active_branch
命令。你將不得不經過源代碼並尋找自己。目前
4
要列出分支機構可以使用:
from git import Repo
r = Repo(your_repo_path)
repo_heads = r.heads # or it's alias: r.branches
r.heads
回報git.util.IterableList
(繼承list
後)git.Head
對象的,所以您可以:
repo_heads_names = [h.name for h in repo_heads]
而且結帳如。 master
:在問題中提到
repo_heads['master'].checkout()
# you can get elements of IterableList through it_list['branch_name']
# or it_list.branch_name
1
我有類似的問題。在我的情況下,我只想列出本地跟蹤的遠程分支。這爲我工作:
import git
repo = git.Repo(repo_path)
branches = []
for r in repo.branches:
branches.append(r)
# check if a tracking branch exists
tb = t.tracking_branch()
if tb:
branches.append(tb)
如果需要所有遠程分支,我寧願直接運行git:
def get_all_branches(path):
cmd = ['git', '-C', path, 'branch', '-a']
out = subprocess.check_output(cmd, stderr=subprocess.STDOUT)
return out
+1
如果你已經有一個Repo實例,你可以直接調用git命令:'''repo.git.branch(' - a')''' – dusktreader 2017-08-08 18:12:51
0
只是爲了使其顯而易見的 - 從當前獲取遠程分支的列表回購目錄:
import os, git
# Create repo for current directory
repo = git.Repo(os.getcwd())
# Run "git branch -r" and collect results into array
remote_branches = []
for ref in repo.git.branch('-r').split('\n'):
print ref
remote_branches.append(ref)
相關問題
- 1. 混帳:應對遠程分支機構從刪除遠程
- 2. 從遠程裸回購結帳特定分支[混帳]
- 3. 混帳 - 刪除遠程後,其分支機構仍然報告
- 4. 混帳:兩個地方分支機構
- 5. 混帳地方分支機構不
- 6. 混帳:創建遠程分支失敗
- 7. 混帳:推刪除分支遠程
- 8. 混帳推不更新遠程分支
- 9. 混帳 - 交換/交換遠程分支
- 10. 復卷遠程混帳分支
- 11. 混帳分支
- 12. 強制遠程結帳分支
- 13. 如何結帳遠程分支?
- 14. 的Git結帳遠程分支
- 15. 混帳:獲取列表的分支
- 16. 混帳拉分支
- 17. 混帳與gitolite分支,如何從主結帳時在開發
- 18. 混帳克隆到遠程機器
- 19. 混帳 - 合併分支
- 20. 混帳,所有分支上
- 21. 混帳分支刪除 - HOOK
- 22. 混帳分支創建git
- 23. 混帳:顯示分支
- 24. 結帳分支時混帳克隆--depth 1不起作用
- 25. git的結帳標籤,混帳拉分支
- 26. 混帳,建立在同一個地方遠程分支,另一個遠程
- 27. 單獨的分支機構或混帳項目?
- 28. 混帳 - 重訂了一套分支機構
- 29. 如何別名混帳刪除合併分支機構
- 30. 混帳推新的分支機構沒有
當我運行R = Git.clone( 「混帳......」)r.checkout( 「發展」)不工作.. AttributeError的: '海峽' 對象有沒有屬性 '結賬' – Mike 2010-03-18 20:28:05
好像看起來像我需要運行ag = Git(「dir 「)然後我可以結賬 – Mike 2010-03-18 20:29:15
可能。我用'g'克隆了一下,然後工作。 – Debilski 2010-03-18 20:32:59