在另一个 git 命令中使用 git 命令
Use git command inside another git command
所以我试图将更改从我的本地分支推送到具有相同名称的远程分支。我正在尝试做这样的事情。
git push origin "git rev-parse --abbrev-ref HEAD"
引号内的命令 return 当前签出分支的名称。
我不确定这是否可行。
本质上,我正在构建一个别名,可以为我添加、提交和推送,它看起来像这样:
git config --global alias.fire '!f() {
git add -A && git commit -m "" && git push origin "git rev-parse --abbrev-ref HEAD";
}; f'
现在,我只是试图获取当前签出的分支的名称并在另一个命令中使用它。有人有任何建议或不同的方法吗?谢谢
编辑:我正在使用 windows
正如评论者所说,如果您安装了 Git,则可以在 Windows 中使用 bash,因此请尝试该命令。
git push origin $(git rev-parse --abbrev-ref HEAD | tail -n 1)
git rev-parse --abbrev-ref HEAD
的输出是
--abrev-ref
4de0cb2e9a86c02ff853630efbae0d2ae777ff47
我将它传送到 tail -n 1
,这是一个打印最后一行输入的命令。将所有内容放入 $( ... )
中获取命令的输出并用作参数。
所以我试图将更改从我的本地分支推送到具有相同名称的远程分支。我正在尝试做这样的事情。
git push origin "git rev-parse --abbrev-ref HEAD"
引号内的命令 return 当前签出分支的名称。 我不确定这是否可行。
本质上,我正在构建一个别名,可以为我添加、提交和推送,它看起来像这样:
git config --global alias.fire '!f() {
git add -A && git commit -m "" && git push origin "git rev-parse --abbrev-ref HEAD";
}; f'
现在,我只是试图获取当前签出的分支的名称并在另一个命令中使用它。有人有任何建议或不同的方法吗?谢谢
编辑:我正在使用 windows
正如评论者所说,如果您安装了 Git,则可以在 Windows 中使用 bash,因此请尝试该命令。
git push origin $(git rev-parse --abbrev-ref HEAD | tail -n 1)
git rev-parse --abbrev-ref HEAD
的输出是
--abrev-ref
4de0cb2e9a86c02ff853630efbae0d2ae777ff47
我将它传送到 tail -n 1
,这是一个打印最后一行输入的命令。将所有内容放入 $( ... )
中获取命令的输出并用作参数。