2
1

More than 3 years have passed since last update.

git リベース/コミット編集/作業の避難

Posted at

git リベースで履歴を整えた形で変更を統合する

*注意:Githubにプッシュしたコミットをリベースできない!!!
git push -f で強制的にプッシュできるが履歴が壊れるので、【絶対NG!!!!】

$ git rebase ブランチ名

git プルのマージ型

$ git pull リモート名 ブランチ名
$ git pull origin master

git プルのリベース型

$ git pull --rebase リモート名 ブランチ名
$ git pull --rebase origin master

・デフォルトでリベース型にするには
$  git config --global pull.rebase true

git 直前のコミットをやり直す

*GithubにプッシュしたcommitはNG!!

$ git commit --amend

git 複数のコミットをやり直す

$ git rebase -i コミットID      //-i interactiveの略
$ git rebase -i HEAD~3      //直前のコミット3つをやり直す!何個前のコミットか数字を置く

・下記の3つのコミット情報が出る!
pick gh21f6d ヘッダー修正
pick 93054e   ファイル追加
pick 84gha0d READNE修正

・修正したいコミットにeditと修正を行う!その後ファイルの保存をする!
pick gh21f6d ヘッダー修正
pick 93054e   ファイル追加
edit 84gha0d READNE修正   

・git commit --amendを行うとコミット名を変更できる!
edit 84gha0d READNE修正    //editに変更したコミット

・修正が終われば
$  git rebase --continue

$ git logで修正されたか確認すること

git コミットを並び替える

$ git rebase -i HEAD~数字

下記のコミットの順番を変更する際は、書き換えればいいだけ
pick gh21f6d ヘッダー修正
pick 93054e   ファイル追加
pick 84gha0d READNE修正
↓
pick 93054e   ファイル追加
pick 84gha0d READNE修正
pick gh21f6d ヘッダー修正    その後ファイルを保存で変更される!

git 複数のコミットを1つにまとめる

$ git rebase -i HEAD~数字

・まとめたいコミットのpickからsquashに変更する!
pick gh21f6d ヘッダー修正
squash 93054e   ファイル追加
squash 84gha0d READNE修正
↓
pick gh21f6d ヘッダー修正   全てのコミットがまとめられる!!!

git コミットの分割を行う!

$ git rebase -i HEAD~数字

・分割したいコミットにeditと記述する!!
pick gh21f6d ヘッダー修正
pick 93054e   ファイル追加
edit 84gha0d READNE修正

・コミットがリセットする!!
$ git reset HEAD^

そこから現状の確認で、git statasで確認する!
そこから git add ファイル名 を行っていき、コミットしていく!!!

最後に
$  git rebase --continue

git タグの一覧表示

$ git tag

$ git tag -l 日付  //日付の指定も可能

git タグを作成する(注釈付きタグ)

$ git tag -a タグ名 -m "メッセージ"

git タグを作成する(軽量版タグ)

$ git tag タグ名

git タグのデータを表示する

$ git show タグ名 もしくは 日付

git タグをリモートリポジトリに送信する

$git push リモート名 タグ名

・タグを一斉送信する
$ git push origin --tags

git 作業を一時避難する

$ git stash
$ git stash save

git 避難した作業を確認する

$ git stash list  //避難した一覧を表示する

git 避難した作業を復元する

・最新の作業を復元する
$ git stash apply

・ステージの状況も復元する
$ git stash apply --index

・特定の作業を復元する
$ git stash apply スタッシュ名
$ git stash apply stash@{数字}           //git stash listで確認すること

git 避難した作用を削除する

・最新の作業を削除する
$ git stash drop

・特定の作業を削除する
$ git stash drop スタッシュ名
$ git stash drop stash@{数字}

・全作業を削除する
$ git stash clear
2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1