前提
- OSはWindows7
- GitHub上に空プロジェクトは作成済
- 今更感ありありの初歩的な話のみ
- プロジェクトがGitFlowなのでその辺の準備も含む
- あまり真面目に書いていない
やった事
1. 作業フォルダの作成
適当に作業フォルダを作成
C:\work\projectX\
2. 作業環境の初期化
ひとまず、GitHubの指示にしたがってみる。
Git Bashとかで、作業ディレクトリに移動してから下記コマンド実行。
echo "# プロジェクトX" >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin https://github.com/{your-account}/{repository-name}.git
git push -u origin master
順番に意味をメモ
echo "# プロジェクトX" >> README.md
readmeファイルを作っているだけ。Git関係ないので割愛。
git init
新しいGitリポジトリを作成する。.gitディレクトリが実行した場所に作成される。
これでただのディレクトリがGitリポジトリに。なんということでしょう。
ちなみに、うっかり再実行しても上書きされたりはしないらしい。
git add README.md
作成したREADME.mdファイルをステージング。
リポジトリにコミットする準備できてるよマーキングですね。
舞台裏で出番をまつ女優みたいな感じ。もちろん男優でもいい。
git commit -m "first commit"
ステージングしてあるファイル(今回はREADME.mdのみ)を作成したローカルリポジトリにコミット。
この時コミットコメントとしてfirst commitを指定。
ついに初舞台に上ったわけですね。
git remote add origin https://github.com/{your-account}/{repository-name}.git
リモートリポジトリの追加。
originという名前に、指定したgithubリポジトリをリンク。
以降、originといえば、指定したgithubのリポジトリを指すようになる。
git push -u origin master
ローカルリポジトリのcommitをoriginに反映させる。
-uオプションを指定することでリモートの追跡が設定される模様。
つまり、今いるブランチのママンは origin masterだよということをメモしたということ。パパでもいい。
うーん、このコマンドはもうちょっと挙動を学んだ方がよさそうだ。
3. git-flow用の環境にする
CUIツールのgit-flowをインストールしてサクッと準備
参考)https://qiita.com/tanishi/items/09e72c65c0a0c9e1cc10
こちらの記事を参考に、CUIのgit-flowをインストールしてみた。
2018/02/05 追記 :
開発フェーズ開始後はSourceTreeを利用しています。便利!
git flow init -d
ってやるとローカルリポジトリにgit-flow用のブランチがピャっとできる。ピャっと。
git push --all
取り合えずリモートに反映してみて恐る恐るGitHubサイトを確認。
よしよし、developブランチが追加されておる。
2018/02/05 追記 :
上記手順で作成したdevelopブランチがリモートを追跡していなかった(git push --allだったから)ので、追跡するように下記コマンドを実行しています。これで、ローカルのdevelopブランチがリモートのdevelopブランチをストーキングするようになりました。
git branch --set-upstream-to=origin/develop develop
デフォルトブランチの変更
ついでに、GitHubサイト上でデフォルトブランチをmasterからdevelopにしておく。
GitFlowなのにプルリク出そうとしたときに毎回masterブランチが選択されているのはつらいですよね…。
新しいメンバーが普通の手順でcloneしたらmasterになるのもつらいですね…。
- タブメニューの[Settings]をクリック。
- サイドメニューの[Branches]をクリック。
- Default branchをmasterからdevelopに変更。
- [Update]ボタンをクリック。
- プルリクやクローンの対象が変わったりするけどいいのって聞かれる。
- [理解の上、デフォルトブランチを更新]ボタンをクリック。
これで、よだれ垂らしながら作業してても大丈夫。
終わり
余談
初期化作業を、うっかりWindowsのコマンドプロンプトでやったらechoで作ったREADMEが文字化けして恥ずかしいコミットができてしまった。
こんな恥ずかしい履歴は後世に残してはいけないので、しれっと隠すべくrebaseしたりpush -fしたり普段あんまりやらないことをいきなりやる羽目になったわけですが、その再2回目のコミットを初回のコミットにリベースする場合は git rebase -i --root
みたいな感じで--rootを付けないと出来ないということをお勉強できた!ちょっとハマったので3時間後の自分のために残しておく。
怪我の功名、結果オウライ。
念のため git push の -fオプション は他の誰とも作業していない段階でしかやってはならないことも3時間後のj(略