将 git 远程名称重命名为 "upstream"
Rename git remote name to "upstream"
我的 git 设置有一个小问题。我经常使用分叉存储库。要分叉它们,我使用 GitHub 上的按钮。之后,命令 git remote -v
显示 "origin" 和 "original-username".
"original-username" 现在是上游分支,我可以从中拉取更改并创建拉取请求。不过,我想将其命名为 "upstream"。
这将使在不同的分支上使用相同的命令变得更容易,我什至可以用它创建别名。
所以我知道我可以用 git remote rename original-username upstream
更改远程名称,但这意味着我必须对每个叉子都这样做,每次我在机器上得到那个叉子时,我都必须 git remote -v first 等等,我很懒:P
此外,原始用户名在每个分叉上都不同。
所以我的问题是:
是否有可能将远程分支(从不同的名称)重命名为上游,可能使用一个很酷的别名函数或一个小脚本?
我的梦想是这样的:
[alias]
setupstream = "!f(){ git remote rename $oldupstream upstream; };f"
$oldupstream
应该以某种方式自动获取。
假设一个本地存储库将只有两个远程配置,其中一个是 origin
,另一个是您想要重命名的那个应该可以工作。
setupstream = "!f() { \
local rem=$(git remote | grep -v '^origin$'); \
if [ \"$(wc -l <<<\"$rem\")\" -gt 1 ]; then \
echo 'Too many remotes.' >&2; \
return; \
fi; \
if [ -z \"$rem\" ]; then \
echo 'No non-origin remote found.' >&2; \
return; \
fi; \
if [ \"$rem\" = upstream ]; then \
echo '\"upstream\" remote already exists.'; \
return; \
fi; \
git remote rename \"$rem\" upstream; \
echo \"Renamed $rem to upstream.\"; \
}; f"
我的 git 设置有一个小问题。我经常使用分叉存储库。要分叉它们,我使用 GitHub 上的按钮。之后,命令 git remote -v
显示 "origin" 和 "original-username".
"original-username" 现在是上游分支,我可以从中拉取更改并创建拉取请求。不过,我想将其命名为 "upstream"。 这将使在不同的分支上使用相同的命令变得更容易,我什至可以用它创建别名。
所以我知道我可以用 git remote rename original-username upstream
更改远程名称,但这意味着我必须对每个叉子都这样做,每次我在机器上得到那个叉子时,我都必须 git remote -v first 等等,我很懒:P
此外,原始用户名在每个分叉上都不同。
所以我的问题是:
是否有可能将远程分支(从不同的名称)重命名为上游,可能使用一个很酷的别名函数或一个小脚本?
我的梦想是这样的:
[alias]
setupstream = "!f(){ git remote rename $oldupstream upstream; };f"
$oldupstream
应该以某种方式自动获取。
假设一个本地存储库将只有两个远程配置,其中一个是 origin
,另一个是您想要重命名的那个应该可以工作。
setupstream = "!f() { \
local rem=$(git remote | grep -v '^origin$'); \
if [ \"$(wc -l <<<\"$rem\")\" -gt 1 ]; then \
echo 'Too many remotes.' >&2; \
return; \
fi; \
if [ -z \"$rem\" ]; then \
echo 'No non-origin remote found.' >&2; \
return; \
fi; \
if [ \"$rem\" = upstream ]; then \
echo '\"upstream\" remote already exists.'; \
return; \
fi; \
git remote rename \"$rem\" upstream; \
echo \"Renamed $rem to upstream.\"; \
}; f"