0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

gitがたまにゲシュタルト崩壊する

Last updated at Posted at 2020-01-09

gitでたまにゲシュタルト崩壊するのでその時々の個人的メモ

ローカルブランチと追跡ブランチ

  • ローカルで作成したブランチは、pushすることで追跡ブランチにも反映される。これは、pushしたらリモートブランチにマージされ、その後それを追跡ブランチにfetchしている。
  • つまり、gitのset-upstreamは追跡ブランチではなくリモートブランチを上流に設定している。

HEADについて

  • gitのHEADは現在いるブランチにおける最新コミット。
  • detached HEADとはこのHEAD、と自分がチェックアウトしたコミット(現段階にとっての最新コミット)が一致しない状態。これを解決するには、
# 元のHEADにチェックアウトする
# ブランチにチェックアウトするとそのブランチの最新コミットにチェックアウトすることになるため
$ git checkout (CurrentBranchName)

# または、新しいブランチを切り、そのブランチに切り替える
# つまり「HEAD = 今いるブランチの最新コミット = 現在チェックアウトしているコミット」になる
$ git checkout -b new_branch_name

もし新しいブランチを切らずに過去のコミットまで戻りたい時には

# どちらか
$ git reset --hard (CommitLog)
$ git reset --soft (CommitLog)

ブランチをRebase vs. Merge

  • rebase+merge(ff)にするとログが見やすいが、修正がきつくなる
  • mergeにするとgithubに表示されるログは時系列ごちゃ混ぜになる(やばい)が、修正がやりやすくなる

こわくないgitがものすごくわかりやすいのでハマったら読む。

色々取り消す

# addしたfileをunstageする
$ git reset HEAD filename

# 特定のファイルの内容をHEADまで戻す
$ git checkout -- filename

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?