我的Git bash忘记了我的别名。我该怎么办?

49

我正在Windows 7笔记本电脑上使用最新的Git bash。当我定义别名时,如下所示:

$ alias gitc='git commit -a'

会话期间一切正常,但如果我关闭并重新打开bash,就无法恢复它们。但是,命令历史记录得以保留。

我该怎么办?我错过了什么吗?

谢谢!


你在哪里定义别名? - Anon
@Anon 在 Git bash 终端中 - Antoine Lizée
Stack Overflow是一个关于编程和开发问题的网站。这个问题似乎不属于编程或开发范畴。请参阅帮助中心中的我可以在这里问什么样的问题。也许超级用户Unix&Linux Stack Exchange更适合提问。 - jww
8个回答

76
当你打开git bash时,输入命令touch .bash_profile。 接着输入vim .bash_profile。 然后可以在此文件中添加别名。保存该文件并重新打开git bash,你的别名应该可以按照预期工作。
这种方法允许你为git bash中可用的任何bash命令创建别名,但正如其他人所回答的那样,也可以使用git本身创建特定于git的别名。

@AntoineLizée,重新加载文件。另一种方法是重新登录。 - Anon
9
啥?你不需要用到“touch”命令,它只是创建一个文件——但是用“vim .bash_profile”命令也能达到同样的效果。如果你想在已经打开的Bash shell中重新加载该文件,需要输入“. .bash_profile”(是的,在前面有另一个点,加个空格),或者输入“source .bash_profile”。 - ebneter
2
如果不需要触摸屏,我很抱歉。我从未尝试使用 vim 创建文件,但在 Windows Explorer 中手动创建文件肯定无法正常工作。但正如 ebneter 所说,它只是创建文件而已。 - ctor
2
不必重新启动git bash shell,您可以使用source .bash_profile. .bash_profile,如此处所述。您知道,在某些情况下,您可能正在进行大量的$^*%操作,或者像我一样发现重新打开一个窗口非常不方便。 - cod3monk3y
答案假设终端的当前工作目录是 /c/users/<username>,但这并不一定是正确的(例如通过 Ctrl+G 从 GitExt 使用 Git bash 时),因此答案中缺失的部分(在我看来)就是在 /c/users/<username> 下创建 .bash_profile 文件。 - Shmil The Cat
我不得不退出 Git Bash 并重新启动它,以使更改生效。 - Mister Verleg

21

你可以设置一个.gitconfig文件并添加别名,而无需修改你的bash_profile:

[alias]
  st = status
  ci = commit
  br = branch
  co = checkout
  df = diff
  lg = log -p

+1,我不知道这个。我已经编辑了我的答案,提到你可以像其他人一样通过git来做到这一点 :) - ctor
1
感谢AJ,我在Git帮助中看到了这个,它肯定可以工作。然而,我想创建不需要 'git' 前缀的别名,例如gb='git branch -v',或者可以处理非Git函数的别名。 - Antoine Lizée

11
在主目录中创建 .bashrc 文件:
touch ~/.bashrc
vim ~/.bashrc

在文件~/.bashrc中添加别名:

alias gitc='git commit -a'
# -- ... and your other aliases here ...

保存文件(在vim中按<ESC>:wq)。重新加载文件,以便bash知道所做的更改:

source ~/.bashrc

这些步骤在我使用的Win 7/Win 8中与Git bash (MINGW32)兼容。


5

对于Windows用户:
确保你在主目录中, 最简单的方法是创建一个.bash_profile文件,并将你的别名插入其中

注意:如果使用记事本编辑它,请先执行以下命令:

git config core.editor notepad

然后创建文件并按以下方式添加你的别名:

notepad .bash_profile

现在你可以将你的别名添加到.bash_profile中,如下所示:

alias yourAlias='your Command Here'
alias AnotherAlias='your Command Here'


ctrl +s文件>保存菜单保存文件


1
如果您从这里下载了git:https://git-scm.com/download/win,请前往安装文件夹,例如:"c:\Program Files\Git"。
找到通常位于此处的aliases.sh文件:C:\installation\folder\etc\profile.d\ 现在您可以像这样添加别名到现有别名中:
# Some good standards, which are not used if the user
# creates his/her own .bashrc/.bash_profile

# --show-control-chars: help showing Korean or accented characters
alias ls='ls -F --color=auto --show-control-chars'
alias ll='ls -l'
alias sail='[ -f sail ] && bash sail || bash vendor/bin/sail'

重新启动你的bash终端,现在你可以在每个git项目中使用你的新别名了。

1

你需要将它们放在你的 .bash_profile 文件中。这样,每次启动新的登录 shell 时,它们就会被重置。


它有效了,非常感谢。我还不能点赞(哈哈),但我选择了另一个答案,它对于初学者来说更准确且易于理解。 - Antoine Lizée

0

我知道你已经得到了答案,但是你可能想考虑使用git自己的别名系统,这在git配置帮助页面中有解释。然后它们可以是每个仓库特定的,也可以是全局或每个用户特定的。


+1 是系统范围内的,而不是通过 .bash_profile 文件进行设置的。 - Antoine Lizée

0

我对PowerShell非常陌生。我从公司借来的笔记本电脑还不到一周,这就是我在Windows上的全部经验。但是,我可能已经找到了一个对我有效的解决方案。

(受https://superuser.com/questions/1090141/does-powershell-have-any-sort-of-bashrc-equivalent启发)

在PowerShell中:

New-Item $profile -Type File -Force

它将在文档文件夹下的WindowsPowerShell文件夹中创建一个名为Microsoft.PowerShell_profile.ps1的文件。然后你可以用文本编辑器打开它:

notepad $profile

在文件中添加$bash = [bash | . ~/.bash_profile]

现在,当从powershell进入bash时,你的bash_profile应该会自动被调用。例如,我可以输入env,我的bash_profile中指定的所有本地变量都会显示出来。我想这也适用于.bashrc,但我还没有尝试过。

仅供参考,这只是Marvin Mustafa答案的扩展。但我不确定他的方法是否能解决我的问题,即每次在Windows中启动新命令提示符时都必须重新加载bash_profile资源。

希望这对你有用。

****编辑****

这个解决方案对我有效,但我从Windows那里收到了一些投诉。我认为更好的解决方案,虽然也可能存在问题,是编辑/etc/bash.bashrc并添加source ~/.bash_profile。这样做后,我的PS1、配置文件变量等都显示在env中。祝好运。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接