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