[英]Add git branch name on bash command prompt in docker container
在我的本地 bash 中,我可以通過在 ~/.bashrc 中添加以下代碼在 bash 命令提示符上添加 git 分支名稱
parse_git_branch() {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
}
export PS1="\u@\h \[\033[32m\]\w\[\033[33m\]\$(parse_git_branch)\[\033[00m\] $ "
在制作 docker 圖像時,我將相同的代碼添加到 docker 容器 ~/.bashrc 中。 但是,它只為當前目錄着色,但不顯示如下分支名稱
user@server /workspace/mydir ()
我所期望的如下所示。 黃色括號表示我正在使用哪個分支。
user@server /workspace/mydir (master)
這就是我在 Dockerfile 中必須執行的操作,其中<<USERNAME>>
應替換為您的 docker 運行為的用戶:
### Setup git branch view in CLI ############
RUN echo "parse_git_branch() {" >> /home/<<USERNAME>>/.bashrc \
&& echo " git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\\\1)/'" >> /home/<<USERNAME>>/.bashrc \
&& echo "}" >> /home/<<USERNAME>>/.bashrc \
&& echo "export PS1='\u@\h \[\033[32m\]\w\[\033[33m\]\$(parse_git_branch)\[\033[00m\] $ '" >> /home/<<USERNAME>>/.basic
我花了很長時間才弄清楚這一點的部分是 sed 命令的 grep 中的 1 之前需要的三個反斜杠。
我的故障排除包括查看我的 Docker 實例中的 my.bashrc 文件。 那就是我看到(\1)
被替換為()
的地方。 因此,如果您遇到此問題並且我的修復對您不起作用,請檢查您的 .bashrc 文件以查看它做了什么。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.