Git 一个批处理脚本,它将自动从当前工作分支中隐藏我的工作,并拉、推到特定分支并创建一个新分支
上面的代码解决了我的问题,但当一些文件发生冲突时,它只会推送我不想要的冲突文件,如果发生冲突,是否有任何方法暂停命令窗口因此,您可以使用Git 一个批处理脚本,它将自动从当前工作分支中隐藏我的工作,并拉、推到特定分支并创建一个新分支,git,batch-file,git-merge,Git,Batch File,Git Merge,上面的代码解决了我的问题,但当一些文件发生冲突时,它只会推送我不想要的冲突文件,如果发生冲突,是否有任何方法暂停命令窗口因此,您可以使用进行循环和操作符和&: @echo off set working_dir="D:\Projects\NestJsApiProject" set /P stash_name= Enter stash name: set /P branch_name= Enter new branch name: set /P commit_des= Enter commi
进行
循环和操作符
和&
:
@echo off
set working_dir="D:\Projects\NestJsApiProject"
set /P stash_name= Enter stash name:
set /P branch_name= Enter new branch name:
set /P commit_des= Enter commit description:
set /P isFeature= Is it a feature?Y/N:
set branch_type= features/
if %isFeature%==N (
set branch_type= bugs/
)
echo %branch_type%
echo %stash_name%
echo %branch_name%
set /P areYouSure= You are going to create a branch named "%branch_type%%branch_name%", are u sure?Y/N:
if %areYouSure%==Y (
cd /D %working_dir%
git stash save %stash_name%
git checkout pre-dev
git pull origin pre-dev
git stash pop stash@{0}
git stash save %stash_name%
git checkout root-branch
git pull origin root-branch
git branch %branch_type%%branch_name%
git checkout %branch_type%%branch_name%
git stash apply stash@{0}
git add .
git commit -m "%branch_name% %commit_des%"
git push origin %branch_type%%branch_name%
git checkout pre-dev
git pull origin pre-dev
git stash apply stash@{0}
git add .
git commit -m "%branch_name%# %commit_des%"
git push origin pre-dev
)
pause
测试并查看结果,如果正常,请删除:
@echo off & setlocal enabledelayedexpansion
set working_dir="D:\Projects\NestJsApiProject"
set /P stash_name= Enter stash name:
set /P branch_name= Enter new branch name:
set /P commit_des= Enter commit description:
set /P isFeature= Is it a feature?Y/N:
set branch_type= features/
if /i "!isFeature!" == "N" set branch_type= bugs/
for %%i in (!branch_type!,!stash_name!,!branch_name!)do Echo/%%~i
:Ask_Again
set /P areYouSure= You are going to create a branch named "!branch_type!!branch_name!", are u sure? [Y/N]:
echo/!areYouSure!|"%__APPDIR__%Findstr.exe" /bei "Y N" >nul || goto :Ask_Again
if /i "!areYouSure!" == "Y" (
cd /D "!working_dir!"
for %%i in (
stash save %stash_name%,
checkout pre-dev,
pull origin pre-dev,
stash pop stash@^{0^},
stash save %stash_name%,
checkout root-branch,
pull origin root-branch,
branch %branch_type%%branch_name%,
checkout %branch_type%%branch_name%,
stash apply stash@^{0^}
add .,
commit -m "%branch_name% %commit_des%",
push origin %branch_type%%branch_name%,
checkout pre-dev,
pull origin pre-dev,
stash apply stash@^{0^}
add .,
commit -m "%branch_name%# %commit_des%",
push origin pre-dev
)do echo/ Git %%~i || "%__APPDIR__%Timeout.exe" -1
) else echo/areYouSure = N
endlocal
echo/Git%%~i | |“%\uuuu APPDIR\uuuu%Timeout.exe”-1
阅读更多关于
echo/ Git %%~i || "%__APPDIR__%Timeout.exe" -1