Chr*_*s B 1 git version-control
我有一个带有远程分支结构的 Git 存储库,如下所示:
bugfix001
bugfix002
feature
feature001
feature002
feature003
master
task
task001
task002
Run Code Online (Sandbox Code Playgroud)
其中“feature”和“task”是分支结构内的文件夹,“feature001”、“feature002”分支位于父“feature”分支文件夹下。
我的问题是 - 是否可以重命名“功能”父文件夹并将所有分支保留在其下。所以我可以将它重命名为“hamster”,结构看起来像这样
hamster
feature001
feature002
feature003
Run Code Online (Sandbox Code Playgroud)
为了清楚起见,我不是指本地文件结构,这是远程的分支结构。要在“功能”文件夹下添加一个分支,我将使用:
git checkout -b feature/feature004
Run Code Online (Sandbox Code Playgroud)
我意识到我可以单独重命名每个子分支并推送到远程,但是我可以重命名“功能”父文件夹,这将导致子分支遵循新名称吗?
git 中没有“分支文件夹”这样的东西。
你只有命名的分支,你使用的名称恰好包含一个斜杠,它提醒人们文件夹结构;但它也可能是别的东西(例如@)。
总结:你必须重命名每个分支,并推送新的分支名称(并删除旧的)
但这应该很简单:
remote=origin
for branch in $(git branch --list "feature/*")
do
newbranch="hamster/${branch#feature/}"
# locally create new branch based on old one
git checkout "${branch}"
git checkout -b "${newbranch}"
# push the new branch to the remote
git push --set-upstream "${remote}" "${newbranch}"
# delete old branch remotely and locally
git push "${remote}" ":${branch}"
git branch -d "${branch}"
done
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2526 次 |
| 最近记录: |