はじめに
過去に作ったコードをGitHubにあげておく必要が出来たものの完了まで時間を要したので、次回以降スムーズに運ぶよう備忘録として手順を記録します。(なお、他の方の記事のほぼ引き写しです。)
前提
GitHubのアカウントは作成済みとする。
Windowsはgitクライアントをインストール済み。スタートメニューからGit Bashで使用。
手順
ここから順に作業を列挙します。(思い出しながらなので順番が入れ替わっている可能性あり)
SSHキーの生成
ローカルのマシン毎に生成しました。(GitHubに登録するキーとなりますが、あまり多く作らない方がいいか?)
hoge@hoge-PC MINGW64 ~
$ ssh-keygen -t rsa
デフォルトではホーム下の.ssh
ディレクトリにid_rsaとid_rsa.pub(公開鍵)が生成される。
unix系の参考資料だと、鍵id_rsaのパーミッションをchmod 600 id_rsa
しますが、Windowsなのでls -l
してもパーミッションは変わりません。
パスフレーズは入力推奨。
SSHのconfigファイル作成
.sshディレクトリに設定ファイルconfig
を作成します。
Host github
Hostname github.com
User git
IdentityFile ~/.ssh/id_rsa
キー生成の際、ファイル名を変更している場合、IdentityFileのファイル名を合わせる事。
GitHubに公開鍵を登録する
gitコマンドでGitHubにPushするため、GitHubに公開鍵を登録する必要がある。
生成されたキーファイルのうち.pubファイルの中身をエディタ等で開いてコピーし
GitHubの鍵登録画面
https://github.com/settings/keys (もしくはGitHubのSettings -> SSH and GPG keys)
で、Key欄に張り付け。
タイトル欄に識別できるようPush元のマシン名などを記載。(WinとかRaspberry Piとか)
Gitのユーザー情報を登録(初回のみ)
git config --global user.name "tarou"
git config --global user.email "tarou.yamada@gmail.com"
(2019/04/04追記)$ git config --list
で登録されているconfig変数を参照できます。
改行コードの自動変換設定(Windowsのみ)
WindowsからPushする際、改行コードの自動変換が挟まれて色々あるようなので、変換を無効にしておく。
git config core.autocrlf false
GitHubへのSSH接続の確認
GitHubへのPushの前に接続ができるか確認しておく。
ssh github
.sshにconfigファイルを作ってあれば、これだけで接続確認ができる。(この記事を書いている際、鍵ファイル名をデフォルトから変更していたことを忘れていてconfigのIdentityFile
の記述がファイル名と違っていたため、複数回Permission Deniedされました。)
GitHubにリモートリポジトリを作成する
GitHubにリポジトリを作成する。
この際、READMEの初期化チェックを付けずにリポジトリ作成をした方が、この後の手順が例示されるので楽。(勘違いかもしれないが、初期化するとこの後のPushが上手くいかず、リポジトリの削除・作成を繰り返した。)
以降は、リポジトリ作成後に表示されるこの画面の情報”…or create a new repository on the command line”どおりに実行する。
(ちなみにHTTPSではなくSSHの情報を使う)
プロジェクトのフォルダをGit管理下に
(先にechoでREADME.mdファイルを生成しておく。)
プロジェクトのディレクトリに移動した後、以下のコマンドでGit化する。
echo "# my_project" >> README.md
git init
プロジェクトの全ファイルを追加、コミットする
git add -A
git commit -m "commit comment"
プロジェクトのリモートリポジトリを設定する
プロジェクトに対応するリモートリポジトリを以下のコマンドで設定する。
git remote add origin git@github.com:kcha4github/my_project.git
(間違えた時)リモートリポジトリを変更するには
(一時、SSHと間違えてHTTPSを入力してしまったので以下のコマンドで修正した。)
$ git remote set-url origin git@github.com:kcha4github/my_project.git
リモートリポジトリへローカルのプロジェクトをPush
ローカルのプロジェクトをGitHubにPushします。
git push -u origin master
上手くいけば、プロジェクト内のファイルがGitHubのリポジトリにアップされます。
参考サイト
ローカル作業フォルダをGIT管理下においてGitHubにPUSHするまで
https://qiita.com/riversun/items/dac05d7fd9ac304dffa9
gitのremote urlを変更する(レポジトリ移行時)
https://qiita.com/minoringo/items/917e325892733e0d606e
今日からはじめるGitHub 〜 初心者がGitをインストールして、プルリクできるようになるまでを解説
https://employment.en-japan.com/engineerhub/entry/2017/01/31/110000