gpt4 book ai didi

git - 无法使用脚本删除 Git 分支

转载 作者:太空狗 更新时间:2023-10-29 14:41:59 25 4
gpt4 key购买 nike

我有几个分支要删除并完成此操作,我正在尝试在 Git Bash (Win Server 2016) 上运行一个 shell 脚本。该脚本读取包含分支列表的文本 block 。这是脚本:

$ cat clean_up.sh
#!/bin/bash
cd $1
branch_list="$2"
git checkout master

while read -r branch
do
git push origin -d $branch
git branch -D $branch
done < "$branch_list"


$ cat branch_list.txt
service-integration
display
...
...

$ clean_up.sh repo_name /e/git/branch_list.txt
Already on 'master'
Your branch is up to date with 'origin/master'.
fatal: Invalid refspec ':service-integration?'
error: branch 'service-integration?' not found.
fatal: Invalid refspec ':display?'
error: branch 'display?' not found.
...
...

$ git --version
git version 2.18.0.windows.1

但是如果我手动 cd 进入 repo 并执行 git checkout branch_name,然后尝试运行上述命令来删除任何分支(远程和本地),它工作得很好。我完全不明白为什么它在脚本中不起作用。 :(

最佳答案

您可能在要导入的文件中将行结尾设置为 CRLF。当您在 shell 脚本中读取文件时,它会将 CR 读取为留置权末尾的字符,并将其解释为分支名称的一部分。

关于git - 无法使用脚本删除 Git 分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51540828/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com