[Python] - 批处理git conflict文件

git merge时,如果两个版本有冲突,冲突文件中会有:

<<<<<<< HEAD

....

=======

....

>>>>>>> branch_name

如果冲突文件很多,一个一个手动修改很麻烦,写了一个Python脚本,自动批处理。

import re
import io

FileList = open("status.txt", "r")
Files = FileList.readlines()

#clear file content
def clear_file(filename):
    with io.open(filename, 'r+', encoding='utf-8') as f:
        f.seek(0)
        f.truncate()

for FileName in Files:
    #extract file name without space
    FileName = FileName[18:-1]

	if FileName:
		#read file content
		oldFile = open(FileName, "r")
		lines = oldFile.readlines()

		#clear file content
		clear_file(FileName)

		oldFile.close()

		#open file again
		newFile = open(FileName, "w")

		#main task
		bInHead = False
		for line in lines:
			if re.search("<<<<<<<", line, re.IGNORECASE) != None:
				bInHead = True
				continue
			elif re.search("=======", line, re.IGNORECASE) != None:
				bInHead = False
				continue
			elif re.search(">>>>>>>", line, re.IGNORECASE) != None:
				continue
			elif bInHead:
				continue
			else:
				newFile.write(line)

		#close file
		newFile.close()

status.txt中存放的是git status的结果,格式类似于:

      both modified:    project\file\path

      .....

这个脚本只会处理both modified的情况,其他如deleted by us、deleted by them、added by us、added by them等情况需要先处理掉。应该是可以统一用脚本一起处理掉的,后面再完善。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值