Git 멀티 웨어하우스 전체 분기 코드 동기화
#!/usr/bin/env python3
#coding: utf-8
import os
import sys
git_url = '[email protected]:tenlee'
remote_name = 'coding'
def get_all_branch_form_path(path):
branchs = os.popen('cd {} && git branch -r'.format(path))
all_branch = []
for branch in branchs.readlines():
branch = branch.strip()
if branch.find('HEAD') > 0:
branch = branch.split()[2]
branch = branch.split('/')[1]
all_branch.append(branch)
return all_branch
def is_git_dir(dir):
if os.path.isdir(dir): #
sub_dirs = os.listdir(dir)
if '.git' in sub_dirs:
return True
return False
def do_push(path):
for file in os.listdir(path):
file_path = os.path.join(path, file)
if is_git_dir(os.path.abspath(file_path)):
all_branch = get_all_branch_form_path(file_path)
for branch in all_branch:
cmd = ('cd {path} &&'
+ ' git remote add {remote} {git_url}/{project}.git').format(
path=file_path, remote=remote_name,
git_url=git_url, project=file)
os.system(cmd)
cmd = ('cd {path} &&'
+ ' git checkout {branch}').format(
path=file_path, branch=branch)
os.system(cmd)
cmd = ('cd {path} && git push {remote} {branch}').format(
path=file_path, remote=remote_name,
branch=branch)
print(cmd)
if os.system(cmd) != 0:
print('Push Error')
else:
print('Push Success')
def main():
path = os.getcwd()
if len(sys.argv) > 1:
path = os.argv[1]
do_push(path)
if __name__ == '__main__':
main()
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.