Git cheat sheet: Difference between revisions
Jump to navigation
Jump to search
(→実用編) |
(→実用編) |
||
Line 159: | Line 159: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
PR送信したあとマージされる前で、アップストリーム・マスターの更新を取り込む。 | |||
<syntaxhighlight lang="bash" enclose="div"> | <syntaxhighlight lang="bash" enclose="div"> | ||
git checkout master | git checkout master |
Revision as of 14:46, 23 October 2019
基本操作
github で repository つくったら手順がでてくる
mkdir hoge
cd hoge
git init
touch README.md
git add README.md
git commit -m 'first commit'
git remote add origin git@github.com:fuga/hoge.git
git push -u origin master
編集後
git add README.md
git commit -m 'message here'
git push
rename
git mv README.md README
git commit -m 'message here'
git push
fork して放置したリポジトリを元のリポジトリと合わせる
git pull 元のリポジトリ master
git push
ブランチを切る
git checkout -b my_new_branch
ブランチを push
git push origin my_new_branch
規定値もろもろ
git config --global user.email foo@bar
git config --global user.name "John Doe"
git config --global core.editor emacs
プルリクエストのパターン
github上でfork
そいつを git clone
現在のブランチを確認すること
git checkout master
git checkout -b 作業内容がよく分かるブランチ名
変更を加えてコミット・Signed-off-by 付ける(openwrtとかは)
git commit -s -m '完結な説明'
git push origin 作業内容がよく分かるブランチ名
github上でプルリクエスト
無事マージされたら作業ブランチを消す
git branch -d 作業内容がよく分かるブランチ名
マージされなっかった作業ブランチを消す
git branch -D 作業内容がよく分かるブランチ名
githubの該当ブランチを消す
git push origin :作業内容がよく分かるブランチ名
元のリポジトリのコミットを追いかける
git remote add upstream 元のリポジトリ
git checkout master
git pull upstream master
元のリポジトリの新ブランチを追っかける
git fetch upstream
git checkout 新ブランチ
git push origin 新ブランチ
git checkout 作業ブランチ
git rebase master 作業ブランチ
実用編
commit コメントメッセージ間違ったので直前の commit 取り消したい
git log
git reset --hard HEAD^
git log
直前のコミットをやり直し。というかcommitメッセージの書き換え。
git commit --amend
git diff に新規追加ファイルを含める
# 新規ファイル作る
git add -N 新規ファイルフルパス
git diff
squash と言われた場合
git log --oneline
git rebase -i HEAD~X (X = number of commits to edit)
# 先頭行以外 pick -> squash
# セーブ
# コメントを編集
# セーブ
git push -f
過去の commitメッセージの書き換え。
git log
# 書き換えるcommitの直下のhash
git rebase -i 直下のhash
# 先頭を pick -> edit
# セーブ
git commit --amend
# コメントを編集
# セーブ
git rebase --continue
git push -f
PR送信してマージされた後の開発ブランチをマスターに同期
git checkout master
git pull
git checkout my-dev
git rebase master
git push
PR送信したあとマージされる前で、アップストリーム・マスターの更新を取り込む。
git checkout master
git pull upstream master
git checkout my-dev
git rebase master
git push --force-with-lease
upstream に新しいブランチが切られた際に、それをフォークに反映
git fetch upstream
git checkout -b new_branch upstream/new_branch
git push -u origin new_branch