我需要一些帮助,如何将此代码从shell脚本编辑为批处理脚本,因为我也想在Windows中运行它。
#!/bin/bash
commit_limit='4'
log=`git show HEAD~$commit_limit --pretty=format:"%H" --no-patch`
echo $log > .git/info/grafts
git filter-branch -f -- --all
rm .git/info/grafts
git update-ref -d refs/original/refs/heads/master
git reflog expire --expire=now --all
git gc --force --prune=now --aggressive
git push --force origin $branch
我尝试了这个,但它给了我一个输出“H”而不是“9b027aaccb996ae4895e4dfb428c5e6e24870e68”
SET commit_limit=4
git show HEAD~%commit_limit% --pretty=format:"%H" --no-patch
pause
答案 0 :(得分:1)
%
)
(%%
)。/
命令中将\
替换为del
。$branch
是一个
shell变量。我修复了批处理语法%branch%
,你必须编辑
这个变量。 @echo off
setlocal
rem edit branch variable
set "branch=branch"
set "commit_limit=4"
set "log=git show HEAD~%%commit_limit%% --pretty=format:"%%H" --no-patch"
%log% > .git\info\grafts
git filter-branch -f -- --all
del .git\info\grafts
git update-ref -d refs/original/refs/heads/master
git reflog expire --expire=now --all
git gc --force --prune=now --aggressive
git push --force origin %branch%
进一步阅读: