Is there a git command that returns the current project name?

前端 未结 11 1324
终归单人心
终归单人心 2021-02-01 17:31

Does git have a built-in command for showing the name of the current remote project? Right now I\'m using this:

git remote -v | head -n1 | awk \'{print $2}\' | s         


        
11条回答
  •  迷失自我
    2021-02-01 17:59

    I was looking for same information in order to customize my shell prompt, so I decided to give a try and ended up with this command which output just the name of the project:

        $ git config --local remote.origin.url|sed -n 's#.*/\([^.]*\)\.git#\1#p'
    

    It should works in any case if your remote origin url is SSH, HTTPS with DNS or IP based.

    • SSH based
      • dns : ssh://git@github.com:user/project.git
      • ip : ssh://git@192.30.252.130:user/project.git
    • HTTPS based
      • dns : https://github.com/user/project.git
      • ip : https://192.30.252.130/user/project.git

    If you don't have remote configured, only a local repository and your top level folder is the name of the project you can use git rev-parse and basename inside your git tree (not reliable solution). It will output the project name:

     TOP=$(git rev-parse --show-toplevel); echo ${TOP##*/}
    

    NB: GH doesn't allow you to clone using IP directly on HTTPS because certificate chain validation. It was just to illustrate the use cases.

提交回复
热议问题