簡體   English   中英

在 docker 容器中的 bash 命令提示符上添加 git 分支名稱

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM