こんばんは。
本日は、現在勉強中のRailsのソースコードを公開してみようと思い立ち(需要がないのは重々承知です)
備忘録がてら、GitHubでのソースコード公開手順も残していこうと思います。
ソースコードあげてみる編と書きましたが、続編が登場する確率は低いです。
はじめに
環境は以下の通りです。(2017/11/26現在)
OS:macOS Sierra Ver.10.12.5
また、GitHub用語やユーザ登録方法などは割愛させていただきます。
リポジトリの作成
GitHubにログイン後、まずはリポジトリの作成を行います。
項目を埋めてCreate repositoryボタンを押下します。
次に、ローカルリポジトリの作成を行います。
ローカルリポジトリを作成するにあたり、
リポジトリとするディレクトリを作成しておきましょう。
(今回はGitHub/gittestというディレクトリを作成しました)
コマンドプロンプトを起動し、作成したディレクトリまで移動して下記コマンドを入力します。
$git init
そうすると、
Initialized empty Git repository in /○○○/○○○/○○○/○○○/GitHub/gittest/.git/
というように表示され、該当ディレクトリがGitリポジトリになります。 (○の文字は環境によって異なります)
このディレクトリの配下にファイルを作成or移動し、ローカルリポジトリへのcommitを行います。
今回はテストを兼ねて「test.txt」というファイルで実験します。
ローカルリポジトリへのcommit
該当のディレクトリにファイルやフォルダを置いたら、
$ git add ○○○
とコマンドを入力します。(○○○はファイルやフォルダ)
上記のコマンドを叩くと,変更点を勝手にインデックスに追加してくれます。
入力して何もメッセージが表示されなければ成功です。
また、下記オプションを指定すると楽です。
むしろこちらの方が使う確率は多いと思います。
$ git add -A $ git add -u $ git add . $ git add *.md
git add -A :新規作成/変更/削除されたファイル全てを追加(AllのA)
git add -u :変更/削除されたファイルを追加。新規作成は対象外。(updateのu)
git add . :新規作成/変更されたファイルを追加。削除は対象外。
git add *.md :ファイル形式を指定する。
インデックスにデータを追加したら,登録(commit)します.
$ git commit -m "初めてのGitHub"
のコマンドで,インデックスの内容が全てローカルリポジトリに登録されます。
なんと簡単....
この時点では,『ローカル』リポジトリなので、GitHub上には反映されておりません。
GitHubにデータを送信する(リモートリポジトリにデータをプッシュする)
では、GitHubにデータを公開してみましょう。
GitHubにログインし、該当のURLをコピーしてください。
まず、インデックス(ファイルの変更点などのリスト?)をGitHubに作成します。
$ git remote add origin 上記URL(https://~~)
そしてコミットされたデータをGitHubに送信(プッシュ)します。
$ git push origin master
そろそろ寝むい...
結果は...
無事に送信できていました!
これは地味に嬉しいです。
これで私もバージョン管理できる風の人になりました。
最後に、ここまで使用したコマンド手順をまとめておきます。
$ git init (ローカルリポジトリ作成) $ git add ファイル名orフォルダ名(インデックス作成) $ git commit -m "コメント"(ローカルリポジトリへ登録) $ git remote add origin URL(https://~~)(リモートリポジトリへインデックス作成) $ git push origin master(コミットされたデータをリモートリポジトリに送信)
たった5手順で終了しました。
ちなみに、ローカルの資源を更新して、再度リモートリポジトリにあげる場合は、
$ git add ファイル名orフォルダ名(インデックス作成) $ git commit -m "コメント"(ローカルリポジトリへ登録) $ git push origin master(コミットされたデータをリモートリポジトリに送信)
上記3手順のみです!!
これでrailsの資源も公開していこうと思います!
状態の戻し方
2018.01.05 追加
謝ってファイルやディレクトリを削除してしまった場合、commit前であれば、以前の状態に戻すことができます。
$ git checkout -f $ git status # On branch master nothing to commit (working directory clean)