- はじめに
- 新規リポジトリを GitHub 上で作成後ローカルリポジトリを作成する
- 既存のリポジトリを導入
- ファイルの変更を確認
- ファイルを変更後コミットする
- コミット履歴の確認
- ブランチを切る
- GitHub へコードを反映
- GitHub 上の情報を持ってくる
- GitHub 上の情報をコードに反映
- Pull request を作成する
- 簡単なチーム開発の流れ
- コンフリクトを rebase で解決
- add を取り消す
- コミットを戻す
- コードを退避させる
- さいごに
これは、困った時にとりあえずこれを見ればとりあえず解決できるかも!というチートシートです。
ハッカソン中などの時間がない時などは是非是非参考にしてください。
しかし、実際に理解していないと正しく扱えないので、これまでの資料を参考にしっかり学習しましょう。
GitHub 上から「Code」のリンクをコピー
HTTPSかSSHかを注意
$ echo "# READM" >> README.md
$ git init
$ git add README.md
$ git commit -m "first commit"
$ git branch -M main
$ git remote add origin [コピーしたリンク]
$ git push -u origin mainGitHub 上から「Code」のリンクをコピー
HTTPSかSSHかを注意
$ git clone [コピーしたリンク]変更ファイルを確認
$ git status変更点を確認
// add前
$ git diff
// add後
$ git diff --staged$ git add .
$ git commit -m "[コミットメッセージ]"$ git log
// 個人的に使っているオプション
$ git log --graph --decorate --oneline --all --pretty=format:'%C(yellow)%h %Cgreen%cn %Cred%d %Creset%s'// ブランチの確認
$ git branch
// ブランチを作成&移動
$ git switch -c [ブランチ名]// デフォルトに設定したブランチ(mainやmaster)へpush
$ git push
// 特定のブランチをpush
$ git push origin [ブランチ名]
// 現在のブランチをpush
$ git push origin HEAD// リモートの情報のみを更新
$ git fetch
// リモートで削除されたブランチを削除して更新
$ git fetch -p// デフォルトに設定したブランチ(mainやmaster)をpull(そのブランチ上で行ってください)
$ git push
// 特定のブランチをpush
$ git push origin [ブランチ名]push 後「Compare & pull request」を選択
各項目を入力して作成
この時、「base」が自分がマージしたいブランチになっていることを確認
-
やることを確認する
-
作業前にコードを反映
$ git pull origin [作業ブランチ名]
-
ブランチを切る(issue を作っている場合は issue 番号を入れるのがおすすめ)
$ git switch -c [ブランチ名] $ git branch // 確認用
-
ファイルを変更
-
細かな機能を作成するたびに add, commit
// 作業内容の確認 $ git status $ git add [変更したファイルのパス] $ git commit -m "[コミットメッセージ]" -
きりがいいタイミングや 1 日の終わりなどに push
$ git push origin [ブランチ名]
-
4〜6 を繰り返す
-
そのブランチでやることが終わったら Pull Request を作成
-
レビューをしてもらう
a. 承認されたらマージ
b. リジェクトされたら 4 に戻る -
1 へ戻る
-
マージ先のブランチの情報を最新にして rebase
$ git switch [マージ先ブランチ] $ git pull origin [マージ先ブランチ] $ git switch [作業ブランチ名] $ git rebase [マージ先ブランチ]
or
$ git fetch $ git rebase origin/[マージ先ブランチ]
-
コンフリクトを解消
-
add, commit
$ git add [変更したファイルのパス] $ git commit -m [コミットメッセージ]
-
rebase を続ける
$ git rebase --continue
-
2〜4 をコンフリクトがなくなるまで繰り返す
-
コードを push
$ git push -f origin [作業ブランチ]
rebaseを行った場合には、コミットIDが変更されるため、強制pushを行います。
-
Pull Request を作る
$ git reset HEAD
// 特定のファイルのみ
$ git reset HEAD [ファイルのパス]リモートにあげていない場合
// ワークツリーとインデックスはそのままにしたい時
$ git reset --soft [戻りたいコミットのID]
// ワークツリーはそのままでコミットを戻したい時
$ git reset --mixed [戻りたいコミットのID]
// 全てを戻したい時
$ git reset --hard [戻りたいコミットのID]リモートにあげている場合
$ git revert [取り消したいコミットのID]// コードをワークツリーから退避
$ git stash save
// メッセージ付きで退避
$ git stash save "[メッセージ]"
// 退避一覧の確認
$ git stash list
// 退避したものをワークツリーに反映
$ git stash pop [stashの番号] // listから削除
$ git stash apply [stashの番号] // listに残したまま
// stashの削除
$ git stash drop [stashの番号]
$ git stash clear // 全て削除こういう場合も書いて欲しいなどありましたら、気軽にご連絡ください。


