6

このようなgitリポジトリをクローンすると

git clone <some-repository>

git は、ソース リポジトリの「ヒューマニッシュ」部分として名前が付けられたディレクトリを作成します。(マニュアルページによると)。

ここで、リポジトリ「cds」を新しく作成されたディレクトリに複製し、いくつかのことを行うbashスクリプトを作成したいと考えています。「git clone」コマンドにディレクトリを明示的に指定せずに、作成されたディレクトリの名前をbashスクリプトが知る簡単な方法はありますか?

4

2 に答える 2

4

Hiery の回答に追加するには、git リポジトリ自体に完全なシェル スクリプトの例が
contrib/examples/git-clone.shあります

# Decide the directory name of the new repository
if test -n "$2"
then
    dir="$2"
    test $# = 2 || die "excess parameter to git-clone"
else
    # Derive one from the repository name
    # Try using "humanish" part of source repo if user didn't specify one
    if test -f "$repo"
    then
        # Cloning from a bundle
        dir=$(echo "$repo" | sed -e 's|/*\.bundle$||' -e 's|.*/||g')
    else
        dir=$(echo "$repo" |
            sed -e 's|/$||' -e 's|:*/*\.git$||' -e 's|.*[/:]||g')
    fi
fi

バンドルのクローン作成が考慮されていることに注意してください(これは1 つのファイルとしてのリポジトリであり、クラウド内のリポジトリを操作するときに役立ちます)。

于 2012-12-12T13:13:08.780 に答える
0

URL を取得して解析し、最新の部分を取得して .git を削除する必要があります。

#!/bin/bash
URL=$1

# Strip off everything from the beginning up to and including the last slash
REPO_DIR=${URL##*/}
# Strip off the .git part from the end of the REPO_DIR
REPO_DIR=${REPO_DIR%%.git}

git clone $URL
cd $REPO_DIR
....
于 2012-12-12T12:40:51.267 に答える