Bash别名:fork一个repo然后cd并安装

时间:2018-05-08 12:39:31

标签: bash git macos github

我正在尝试为我的.bash_profile添加别名,以自动克隆GitHub存储库。克隆部分很简单:

alias createApp 'git clone https://github.com/user/repo.git'

这允许我执行:

createApp foo
createApp bar

如何在克隆后将克隆别名修改为cd <destination_folder> && npm install,同时保持接受自定义目标文件夹名称的当前行为?

2 个答案:

答案 0 :(得分:4)

创建shell函数而不是别名。

createApp() {
    git clone https://github.com/user/repo.git "$1" &&
    (cd "$1" && npm install)
}

cd放在子shell中会将其限制为npm命令。

答案 1 :(得分:1)

我设法在.gitconfig的帮助下间接地做到了这一点。

.gitconfig中的

[alias]
    createApp = "!f() { git clone https://github.com/user/repo.git \"$1\" && cd \"$1\" && npm install; }; f"
.bash_profile中的

alias createApp='git createApp'

我将保持这个问题的开放性,以回答是否有直接(或更好)的方法来做到这一点。