1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GitのBranchに対して抱いていた誤解 + ファイルを書き換えるgit command一覧

Posted at

はじめに

業務でGitを触る中で、これまでぼんやりと理解したつもりになっていた部分や誤解していた部分が最近はっきりしました。
以下では、その中身と関連して、ファイルに変更を加えるgit command一覧についてまとめました。
初心者向けに、このcommandを使わなければ、変更内容が消えたりすることはない。という視点でのまとめです。

結論

  • ブランチによるバージョン管理は、別々の世界線を設けているのではなく、同じ世界線を別視点で見ているだけ

Gitのバージョン管理について

GItはバージョン管理ツールです。
Gitの謳い文句として、
「文章_A.txt, 文章_B.txtのようにコピーを作成するバージョン管理から脱却しよう」
というようなことが言われると思いますが、まずはこれについて詳しく書いていきます。

具体的にどういうふうに管理しているか

具体的な手順です。

  1. ファイル作成、保存
  2. git addで記録したい内容を選択
  3. git commitで選択した内容を記録

行ったcommitは、commit hashという数字とアルファベットの組み合わせで名前がついていて、その名前でいつの変更かを管理しています。

本題:ブランチについて

branchとは、厳密に言うとこのコミットのあとにこのコミット、次にこのコミットという変更履歴を記録したもの。
ブランチはファイルを持っていません。

そのため、ブランチを変更しても、同じディレクトリを見ている限り、ファイル内容は同じです。

ブランチAとブランチBで違う変更作業を行っていたとして、ブランチAでファイルを変更しctrl+Sで保存、ブランチBに移動して同じファイルを変更してctrl+Sで保存したとします。
ここで再度ブランチAに戻ってたとしても、ブランチAでの変更時点には戻りません。

これはctrl+Sでなく、git commitしても、git checkoutでブランチの移動を行うだけではファイルの変更は起こりません。もとの変更内容を手元に持ってきたければ、ブランチの移動をするたび、毎度pullする必要があります。

ファイルに変更を加えるgit command一覧

ブランチの変更だけでは、ファイル内容はもとに戻らないということで、以下では、ファイルに変更が加わるgit commandをまとめていきます。

git pull

最新のコミット内容との差分をファイルに反映させる

git checkout ファイル名

ファイルの変更内容を捨てて、最新のcommitの状態に戻す。

git clone ~

git repositoryを、ディレクトリ内にダウンロードします。

git reset

git checkoutファイル名が、ファイル単体をもとに戻すのに対し、管理しているファイル全体をもとに戻します。

git clean

バージョン管理されていないファイルを削除。

使うものでこれくらいだと思います。他にあれば追記します。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?