python_subprocess_git

用python3下的subprocess库来操纵一些git命令行的演示:

# 一些相关的git的原生命令
# 新建分支dev
#     git branch dev
# 
# 切换到master分支
#     git checkout master
# 
# git 强制放弃本地修改(新增、删除文件):
#     git checkout . && git clean -df
#         git checkout . //放弃本地修改,没有提交的可以回到未修改前版本
#         git clean是从工作目录中移除没有track的文件.
#         通常的参数是git clean -df:
# -d表示同时移除目录,-f表示force,因为在git的配置文件中, clean.requireForce=true,如果不加-f,clean将会拒绝执行.
# 
# 拉取
#     git pull


# Q: git 新建分支dev
# A:
import subprocess
cmd = r'git branch dev'
cmdpath = r'F:\workprojects\xxx\xxx'
process = subprocess.Popen(cmd, shell=True, cwd=cmdpath)
process.wait()
result = process.returncode
if result == 0:
    print("git新建分支dev:成功")
else:
    print("git新建分支dev:失败")


# Q: 切换到master分支
# A: 
import subprocess
cmd = r'git checkout master'
cmdpath = r'F:\workprojects\xxx\xxx'
process = subprocess.Popen(cmd, shell=True, cwd=cmdpath)
process.wait()
result = process.returncode
if result == 0:
    print("切换到master分支:成功")
else:
    print("切换到master分支:失败")

# Q: git 的还原(丢弃)
# A: 将本地的所有的修改(没有提交),返原
import subprocess
cmd = r'git checkout .'
cmdpath = r'F:\workprojects\xxx\xxx'
process = subprocess.Popen(cmd, shell=True, cwd=cmdpath)
process.wait()
result = process.returncode
if result == 0:
    print("git还原:成功")
else:
    print("git还原:失败")

# Q: git 的清理
# A: 清理没有加入版本控制的文件或文件夹
import subprocess
cmd = r'git clean -df'
cmdpath = r'F:\workprojects\xxx\xxx'
process = subprocess.Popen(cmd, shell=True, cwd=cmdpath)
process.wait()
result = process.returncode
if result == 0:
    print("git清理:成功")
else:
    print("git清理:失败")

# Q: git 的拉取
# A: 将工程更新到就新版本
import subprocess
cmd = r'git pull'
cmdpath = r'F:\workprojects\xxx\xxx'
process = subprocess.Popen(cmd, shell=True, cwd=cmdpath, stderr=subprocess.PIPE, stdin=subprocess.PIPE, stdout=subprocess.PIPE)
process.wait()
result = process.returncode
if result == 0:
    print("git 的拉取:成功")
else:
    print("git 的拉取:失败")
# while subprocess.Popen.poll(process) == None:
#     r = process.stderr.readline().strip().decode('gb2312')
#     if r:
#         print(r)
#         print("----------")

猜你喜欢

转载自blog.csdn.net/anyuanlzh/article/details/78805462
今日推荐