ここでは、Git の事を知っている方を対象に、解説するので、
「Git とは、何???」
という方は、以下の記事を読んで、先に勉強してください。

ソースコードの管理に、多くの方が、Git リポジトリを利用していると思います。
代表的な Git リポジトリと言えば、以下の 3つでしょうか。
業務なら、GitHub の有料プライベートリポジトリ。
個人で使うなら、無料で使える Bitbucket って方が多いのではないでしょうか?
私は、無料ということと、AWS という名前に魅かれて、使いづらい CodeCommit を使っていましたが・・・
ですが、とうとう GitHub でも、無料でプライベートリポジトリが使えるようになりました!
共有できるのは、3人までと制限はありますが、個人で開発している方には、嬉しい変更だと思います。

ということで、私は、早速 CodeCommit から GitHub に乗り換えようと決意しました。
ここでは、移行の際に、行った事を順番に紹介します。
この記事は、Linux に関して多少知識のある方、もしくは、私が記述した内容を、そのまま素直に実行できる方を対象にしています。
管理人は、Windows 環境ですが、Mac でもほとんど、作業内容は変わりません。
全体の流れ
- GitHub にリポジトリを作る
- remote の参照を変更
- SSH 接続の設定
- ソースコードを commit・push する
GitHub にプライベートリポジトリを作成する
事前準備
事前に、GitHub のアカウントを作成してください。
アカウント作成方法については、それほど、難しい事は無いので、割愛します。
作成が完了したら、以下のページからログインしてください。
空のプライベートリポジトリを作成する
画面左下にある「New repository」をクリックしてください。
各項目を入力し、「Create Repository」を押下してください。
- 「Repository name」:リポジトリ名の設定(プロジェクト名のようなものです)
- 「Description」:このリポジトリの説明(未記入でも構いません)
- 「Private」:設定したアカウントしか、このプロジェクトを見れないようにする設定
- 「Initialize this repository with a README」:README ファイルを作るかどうかの設定
- 「.gitignore」:Git で管理しないファイルの設定
- 「license」:このプロジェクトのライセンス設定
「Repository name」は、分かりやすく簡潔なものにしましょう。
「Public」を選択すると、全世界に公開されますので、必ず「Private」を選択してください。
他の項目は、デフォルトのままで構いません。
リモート(Remote)の参照を変更
私は、既に CodeCommit を利用しているので、remote の参照先を変更します。
画像の通り「Clone or download」をクリックし、ポップアップ右上にある「Use SSH」を選択。
表示された URL をコピーしておきます。
現在の参照先を確認
「Git Bash」を起動。
$ vagrant ssh $ cd /home/vagrant/code/laravel $ git remote -v
参照先を変更
$ git remote set-url origin [コピーした URL] $ git remote -v
push が正しく変わっていない場合は下記で設定。
$ git remote set-url --push origin [コピーした URL]
SSH 接続の設定
公開鍵・秘密鍵を作成する
$ cd ~/.ssh $ ssh-keygen -t rsa
SSH 接続するための鍵を登録
画面右上の画像をクリックし、「Settings」を選択。
「Personal settings」-「SSH and GPG keys」をクリックし、画面右上の「New SSH key」を選択します。
「title」に公開鍵名、「key」に公開鍵の内容を記載。
疎通確認
$ ssh -T git@github.com
以下のような Warning が発生する場合には、
Warning: Permanently added the RSA host key for IP address ‘192.30.255.112’ to the list of known hosts.
git@github.com: Permission denied (publickey).
以下のコマンドを実行。
$ ssh-keygen -R 192.30.255.112
ソースコードを commit・push する
$ git commit -m "relocate" $ git remote add origin git@github.com:xxxxx/xxxxx.git
以下のようなエラーが発生!
fatal: remote origin already exists.
なので、一旦、origin を削除し、再度 origin を登録する
$ git remote rm origin $ git remote add origin git@github.com:xxxxx/xxxxx.git $ git fetch $ git push -u origin master
すると再びエラー!
複数のリポジトリをマージしようとするとなるらしい。
fatal: refusing to merge unrelated histories
$ git merge --allow-unrelated-histories origin/master $ git push -u origin master
これで、無事完了しました!
参考サイト



コメント