87

gitolite を使用して Git リポジトリを作成しました。ここで、そのリポジトリの名前を変更したいと思います。

これどうやってするの?

gitolite の readme には、サーバー上で直接作業するべきではないと書かれています。しかし、この場合、サーバーで何らかの作業を行う必要があると思いますよね?

4

4 に答える 4

138

gitolite basic-admin マニュアルに記載されているとおり:

レポの名前を変更する

これは似ています。でこれを行うコードはありませんgitolite。あなたがすることは次のとおりです。

  • サーバーへのログオンcd $REPO_BASE(デフォルト: cd ~/repositories)、および

    mv old-name.git new-name.git

  • gitolite-admin クローンに戻り、編集して の出現箇所をconf/gitolite.confすべて に置き換えます。次に、通常どおり追加、コミット、およびプッシュします。old-namenew-name

これら 2 つのステップの順序は重要です。それらを逆にしないでください:-)

gitolite3 では 3 番目のステップが必要です。

  • リポジトリ内のファイルを編集gl-confし、リポジトリ名を新しい名前に変更します

そしてもちろん、すべてのユーザーはクローン構成を更新して、新しいリポジトリ名を指すようにする必要があります。

于 2011-03-02T08:03:55.270 に答える
9

特に gitolite には詳しくありませんが、うまくいく可能性のある 1 つの方法は、正しい名前で完全に新しいリポジトリを作成し、コードをそのリポジトリにプッシュしてから、古いリポジトリを削除することです。

于 2011-01-16T22:21:50.997 に答える
0

Greg Hewgill をアイデアとして使用すると、構成ファイルでリポジトリの名前を変更できる可能性があります。最初にダミーのリポジトリで試してみることをお勧めします。私の疑いでは、古い名前が削除され、新しい名前が作成され、オリジンをローカルで更新してからプッシュする必要があります。

于 2011-01-17T09:53:45.050 に答える
-1

クリーンなアプローチは、新しいリポジトリを空のリポジトリとして作成し、次の手順を実行することです。

old が OLD で、new (空) が NEW であると仮定します。

# mkdir /tmp/1
# cd /tmp/1
# git clone OLD_REPO old
# git clone NEW_REPO new
# cd new
# git pull ../old
# git push origin master

または、OLD のリモート リポジトリを直接使用することもできます。

# mkdir /tmp/1
# cd /tmp/1
# git clone NEW_REPO new
# cd new
# git pull OLD_REPO
# git push origin master

これにより、すべての履歴が保持され、gitolite がその内部を処理できるようになります。さらに、gitolite-admin を更新する必要がありますが、順序に制限はありません。

これはリモートでも問題なく動作します。

ただし、古いリポジトリの削除は、gitolite の指示に従って (ローカルで) 行う必要があります。

于 2014-06-06T23:27:21.527 に答える