GitHubリポジトリをローカルGitサーバーに移行する方法
etckeeperで設定ファイルをGit管理していましたが、Privateなリポジトリにしたとしても大事な内容が書かれているファイルをクラウド上に置くことに抵抗を感じて、ローカルのGitサーバーに移行しようと思いました
前提
ローカルのGitサーバーは設置済でSSH経由でアクセスできるようにしてあることとします
作業内容
以下のURLにある通り、既存リポジトリの .git
以下のファイルをローカルGitサーバーのディレクトリに配置するだけで良いそうです
そうすると、Git ディレクトリのデータを my_project.git ディレクトリにコピーできます。
これは、おおざっぱに言うと次の操作と同じようなことです。
$ cp -Rf my_project/.git my_project.git
設定ファイルにはちょっとした違いもありますが、ほぼこんなものです。 作業ディレクトリなしで Git リポジトリを受け取り、それ単体のディレクトリを作成しました。
1. 既存リポジトリの取得
普通にGitHubからcloneすればいいです。普段使っている一般ユーザーのターミナルで git clone
を実行します。 username
と my_project
は適宜読み替えてください
$ git colne [email protected]:username/my_project.git
clone したコードの .git
ディレクトリに入り、中身を圧縮ファイルでまとめます
$ cd my_project/.git
$ tar zcvf ../my_project.tgz .
2. Gitディレクトリの作成
ローカルGitサーバーにGitリポジトリのディレクトリを作成します。ここでは、 /opt/git
配下にGitリポジトリを作っているものとします。場所は適宜読み替えてください
$ sudo mkdir /opt/git/my_project.git
既存リポジトリの圧縮ファイルを展開します。1. の手順で作成した圧縮ファイルのある場所 (my_project のディレクトリ) へ移動します。 ../
は 1.の手順の状態で my_project/.git
にいることを想定しています
$ cd ../
$ sudo tar zxvf my_project.tgz -C /opt/git/my_project.git
Gitリポジトリのオーナーを git ユーザーに変更します
$ sudo chown -R git.git /opt/git/my_project.git
オーナーが変わったことは ls
コマンドで確認できます
$ ls -lR /opt/git/my_project.git
3. リポジトリのconfigファイルの変更
.git/config
に今までのリポジトリの情報が入っているので、一旦消して、以下の内容だけにします
[core]
repositoryformatversion = 0
filemode = true
bare = true
4. 確認
ローカルGitサーバーのリポジトリが clone 出来ることを確認できれば移行完了です。ローカルサーバーのIPアドレス 192.168.10.1
は適宜読み替えてください
$ git clone [email protected]:/opt/git/my_project.git
確認できれば、今まで使っていたGitHub上のリポジトリは削除しても大丈夫です
Author And Source
この問題について(GitHubリポジトリをローカルGitサーバーに移行する方法), 我々は、より多くの情報をここで見つけました https://qiita.com/suzutsuki0220/items/c1e725c9529725b1d6f8著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .