2
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

updated at

新人向けチートシート: git

自分のcommitをpull requestするまで

git pull #ローカルリポジトリを最新化
git checkout -b <branchName> #ブランチの作成と移動
#ファイルを編集

git status #編集したファイルを確認
git add . #"."はカレントディレクトリ以下のファイルを全てadd
#git add -p ファイル名 #改変範囲が多い場合はpオプションでブロック単位でステージング
git commit -v
git push -u origin <newRemoteBranchName>
#GUIでファイル差分をもう一度確認してからプルリクエスト

コミットの差分を確認したい

git diff #差分を確認
git diff --word-diff-regex="\w+" #文字単位での差分を確認

リモートのBranchをローカルにcheck outする

git checkout -b <newLocalBranchName> <remoteBranchName>

間違えてaddした

git status #addしたファイルを確認
git reset HEAD <fileName>

間違えてcommitした

commitを取り消す

ファイルの変更を取り消す

git status #commitを確認

git reset --hard HEAD^

ファイルの変更を取り消さない

git status #commitを確認
git reset --soft HEAD^

コミットを上書きする

git status #commitを確認
#ファイルを編集
git add <filename>
git commit --amend #push済みのcommitには実施しない

間違えてpushした

自分しか作業しないBranchの場合

git reset --hard HEAD^
git push -f #commitを強制的に上書きするので、他の人も作業している場合commit履歴がバグる可能性があるので実施しない

他の人もいるBranchの場合

git log #commit idを確認
git revert <commitId> #打ち消しcommitを作成

pull requestが競合した

git checkout <yourWorkingBranchName> #作業中のBranchに移動
git pull #ローカルリポジトリの最新化
git rebase master #マスターブランチの最新commitに、作業ブランチの派生commitを植え替え
git status #競合状況を確認
#ファイルを編集
git add <fixedFileName> #競合ファイルを編集
git rebase --continue #rebaseを進める。コマンドの指示に従い、addとrebaseを繰り返す
git push #remoteにpushする

Branchで作業中に別のBranchでの作業を頼まれた

git stash save <yourComment> #変更内容を一時保存
git stash list #保存されたか確認
git checkout <otherBranchName> #別のBranchに移動
#別のブランチでの作業完了
git checkout <originalBranchName> #元のBranchに戻る
git stash pop #変更内容を戻す

コミットを整理したい(上級者向け)

git rebase -i #表示される画面をよく読んでから使いましょう

新人向けチートシート

Register as a new user and use Qiita more conveniently

  1. You can follow users and tags
  2. you can stock useful information
  3. You can make editorial suggestions for articles
What you can do with signing up
2
Help us understand the problem. What are the problem?