用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("----------")