python 这个脚本在git log中搜索你所在的当前目录,并在“base commit”上启动一个交互式rebase,这是s

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 这个脚本在git log中搜索你所在的当前目录,并在“base commit”上启动一个交互式rebase,这是s相关的知识,希望对你有一定的参考价值。

#!/usr/bin/env python

import subprocess
p = subprocess.Popen(["git", "log", "--format='%s'"], stdout=subprocess.PIPE)
out, err = p.communicate()

# Keep going until we don't find a "fixup! " 
fixup_count = 0 
max_list_size = 10                                                                                                                                                                                                                                                              
commits = out.split('\n')[:max_list_size]

for c in commits:
    if "fixup! " not in c:
        break
    fixup_count += 1

head_str = "HEAD~%d" % (fixup_count + 1)
print("Fixup count: %d" % fixup_count)

if fixup_count == max_list_size:
    print("No base commit found in the last %d commits!" % max_list_size)
    print("You should REALLY consider rebasing...")
elif fixup_count == 0:
    print("No fixup commits found. Nothing to do")
else:
    print("Found base commit %d commits back: %s" % (fixup_count, c)) 
    print("*** Calling interactive rebase on %s..." % head_str)

    subprocess.call(["git", "rebase", "-i", "--autosquash", head_str])

以上是关于python 这个脚本在git log中搜索你所在的当前目录,并在“base commit”上启动一个交互式rebase,这是s的主要内容,如果未能解决你的问题,请参考以下文章

不在存储库中时如何在终端中获取“git log”或使用 shell 脚本

10分钟教你搭建一个好玩的Python全文搜索引擎

python学习第十三节(sys,logging,logger,json)

CC::LuaEngine->executeScriptFile("main.lua") 不执行脚本

git log pretty format 可以保留主题中的新行吗?

获得Python脚本所在目录