cloud 9からGitHubに初めてpushする方法(初学者向け)


cloud 9からGitHubに初めてpushする方法とGitコマンド(初学者向け)

awsのcloud9を使ってアプリケーションを作り始めると、portfolioが必要なんじゃないかと考え出しますよね。そんな時GitHubにコードのソースをpushしておけばコードの管理もできますし、portfolioとしても機能します。

Gitとは

Gitとはなんのためにあるのか?一言で言うと、ファイルのバージョンを管理するものです。
ファイルのバージョンを管理できれば、いつ誰がファイルを修正したのかがわかるようになります。むしろそれらができなければ問題ですよね。一般的にファイルのバージョンの管理システムはsvn(subversion)と言われていますが、Gitはsvnよりもおのおのの開発者がそれぞれの機能を個別に一つのアプリケーションに実装していくのに、コストが低いと言われています。導入しない手はありませんね。
https://github.co.jp/

前提

手順

  • cloud9の作業ディレクトリでgitのローカルリポジトリを作成する
  • 全ての作業フォルダをステージに追加して、コミットする
  • cloud9でSSHキーを作成する
  • GitHubにリモートリポジトリを取得する
  • cloud9からGitHubのリモートリポジトリを登録しpushする

cloud9の作業ディレクトリでGitのローカルリポジトリを作成する

~/environment $ cd mydir
~/environment $ pwd
/home/ec2-user/environment/mydir

作業ディレクトリに移動します

//gitフォルダの作成
$ git init
//確認
$ ls -a
//.gitを確認
$ ls.git
- branches        config       HEAD   index  logs     refs
- COMMIT_EDITMSG  description  hooks  info   objects

.git initコマンドにより作成された.git は隠しファイルです。ls .gitコマンドによって隠しファイルの中身を表示させられます。
カレントディレクトリを作業ディレクトリに移動して、全てのファイルやフォルダをgitのローカルリポジトリに追加します。

全ての作業フォルダをステージに追加して、コミットする

$ git add .

続けて

$ git commit -m "first commit"

-mはoptionで、messageを追加できます。ファイルの修正を行ったことをメッセージを添えることでわかりやすくなってます。

cloud9でSSHキーを取得する

GitHubとCloud9間でデータの受け渡しをする際の鍵を作ります

$cd ~/.ssh

.sshファイルに移動します

$ ls -ltr

続けて

$ ssh-keygen

続けて

$ cat ~/.ssh/id_rsa.pub

公開鍵を表示させて、コピーします。
コピーしたssh公開鍵をGitHubのリモートリポジトリに追加します。

GitHubにリモートリポジトリを作成する

  • GitHubのご自身のページトップのツールバーにrepositoriesをクリック
  • newボタンをクリック
  • Repository nameに任意で記述して、defaultのままcreate repositoryをクリック(有償利用の方はprivateでも良いと思います)
  • トップページの右上のアイコンののドロップダウンからsettingをクリック
  • personal settingsのSSH and GPG keysをクリック
  • 先ほどコピーしたsshの公開鍵をSSH keysへ貼り付けます。
  • 作成したリポジトリをクリックし、codeのページでsshのURLをコピー

コピーしたURLをcloud9で登録に使います。

cloud9からGitHubのリモートリポジトリを登録しpushする

cloud9にて

~/environment $ cd mydir
~/environment $ pwd
/home/ec2-user/environment/mydir

自身の作業ディレクトリに移動します

$ git remote add origin https://github.com////////

コピーしてきたsshのURLをoriginの後に貼り付けます。
このコマンドでorigin以下のURLを登録できます。
originとすることで、pushするたびにURLを記述しなくてよくなります。

$ git push -u origin master

-uとすることで次回から同じリポジトリなら $ git pushのみでローカルリポジトリのファイル内容をリモートリポジトリに送信できます。これでcloud9からGitHubに初めてpushする方法は以上です。
ちなみにmasterはブランチのことです。
一つのアプリケーションを複数人で開発し始めた時にブランチを切ってmasterと同じ内容のファイル群を自身の環境に引っ張ってきてのちにmasterに統合していく方法を取ることができます。今回はmasterブランチをリモートリポジトリに作成しました。

補足 Gitコマンド

git command 概要
git add . ステージに追加(ローカルリポジトリ)
git add <ファイル名> ファイルをステージに追加(ローカルリポジトリ)
git add <ディレクトリ名> ディレクトリをファイルをステージに追加(ローカルリポジトリ)
git commit ステージに変更を記録する
git commit -m "message" メッセージを添える
git commit -v エディタが立ち上がり変更場所を確認できる 
git status ワークツリーとステージの違いをみる/ステージとリポジトリの違いをみる
git diff git add する前の変更差分をみる(ワークツリーとリポジトリの差分) 
git diff --staged ステージとリポジトリの変更差分
git log 時系列で変更履歴を新しい順で表示する 
git log --oneline 一行で表示する 
git log -p   ファイルの変更差分を表示する
git log -n <コミット数> 表示するコミット数を制限する
git log -p -n1 直前の修正文のものだけを表示する
git rm   removeする
git rm -r   removeする
git rm --cashed ワークツリーに残してリポジトリ、ステージから削除したい時
git rm -r --cached . .gitignoreのキャッシュを削除する
git reset HEAD 削除したファイルを元に戻す 
git mv <旧file><新ファイル> ファイルの移動を記録する
git remote add origin http://github.com~~~~~~~~~~ リモートリポジトリを登録 
git push <リモート名><ブランチ名> リモートリポジトリへ送信 
git push -u origin master -uにより次回から記述を省略して送信
git config --global alias.ci commit コミットするときの記述を省略する(エイリアス)
git config --alias.st status git statusコマンドを stに省略する
git config --global alias.br branch ブランチの記述を省略する
git config --globalnalias.co checkout checkoutの記述を省略する
.git ignore 指定したファイルを除外する 
.git ignore dir/ ディレクトリ名を指定
git checkout 変更を元に戻す
git checkout   変更を元に戻す
git checkout -- 全変更を取り消す
git checkout -- ワークツーリーの状態をステージと同じにする
git reset HEAD 最新のデータに上書きする
git reset HEAD 全変更を取り消す
git commit --amend 直前の変更をやり直したいとき 
git remote リモートを取得する
git remote -v URLと名前を取得する
git remote show リモートの詳細情報を表示する
git remote rename <旧リモート名><新リモート名> リモート名の名前を変更
git remote rm <リモート名> リモート名の削除
git fetch <リモート名> リモートからローカルへ情報を取得する
git merge fetchによってローカルに取得したブランチをワークツリーへ取り込む
git branch -a リモートリポジトリを全て表示する
git pull <リモート名><ブランチ名> fetchとmergeをまとめたコマンド
git branch <ブランチ名>  ブランチを作成
git branch -a ブランチの一覧を表示
git checkout <ブランチ名> ブランチを切り替える
git checkout -b <新ブランチ名> ブランチを新規作成して切り替える