まぬねこの足跡。。。

備忘録+たのしさ+ひっそりと

Git 分散型のバージョン管理システム

バージョン管理 流れ

  • ローカル環境(個人PC)での変更記録の作成
  • リモート環境(サーバ)への変更記録の同期

インストール 初期設定

1. インストール状態確認

$ git --version

バージョン表示がなければ、未インストール

2. インストール

$ sudo apt-get install git

3. アカウント情報登録

「.gitconfig」設定ファイルに記載

$ git config --global user.name '個人ユーザ名'
$ git config --global user.email '個人メールアドレス'

4. 設定確認

$ git config --list

ローカルリポジトリを作成

1. 作業ディレクトリに「cd」移動、「mkdir」作成

2. git ローカルリポジトリ作成

$ git init

※「.git」ディレクトリが作成される

リモートリポジトリの内容を、ローカルリポジトリとして自分のPCに複製

 git clone https://github.com/~~~~~

ローカル環境(個人PC)での変更記録の作成

ファイル変更をステージングエリアに追加し、ローカルリポジトリにコミットとして記録する
ちょこっとメモ

リポジトリ

バージョン管理の対象となるファイルの保管先

コミット

ファイルの変更をひとつのまとまりとして記録したもの
記録内容:更新日時、更新ファイルとその内容、更新時のメッセージなど

ステージングエリア (インデックス)

コミット対象にしたいファイルを一時的に退避する領域

ステージングエリア

ステージングエリアに登録

1. ファイルを作成

2. Git状態を確認

$ git status


  • Untracked files: + 更新ファイル名:Gitで管理されていないファイル
  • nothing added to commit but untracked files present:コミット対象に追加ファイルはないが、Git管理されていないファイルがあり。


  • No commits yet:バージョン管理の記録であるコミットが作成されていない

3. ステージングエリアに登録

$ git add .
又は、
$ git add [登録ファイル名]

4. Git状態を確認

$ git status
  • Changes to be committed + 登録ファイル名:Gitの追跡対象に追加

ステージングエリアから削除

$ git reset [登録削除ファイル名]

Git管理対象外に設定

「.gitignore」設定ファイルに対象外ファイル名を記載

1.「.gitignore」作成

$ touch .gitignore
確認
$ ls -la
$ git status

2. 「.gitignore」ファイルに登録

$ echo "対象外ファイル名" >> .gitignore

コミット

コミット登録

リポジトリにコミット git commit -m

$ git commit -m "コメント"

リポジトリにコミット エディタ(VS Code)を使用

1. コマンド入力欄(Ctrl + Shift + p)を表示
2. 以下を入力
Shell Command: Install 'code' command in PATH
3 . ターミナルで以下を入力

「表示(V)」タブ→「ターミナル(Ctrl+@)」を入力

$ git config --local core.editor "code --wait"
$ git commit
4. コミットメッセージを記述、「Ctrl+S」保存+「Ctrl+w」終了

コミット確認

$ git status

nothing to commit. working tree clean:
管理ファイルは変更なし、コミットするものはありません

コミット履歴を確認

$ git log
簡潔表示
$ git log --oneline

「commit 英数字(コミットID)」で表示

コミット済みファイルを対象外にするには。

$ git reset
$ git rm --cached

コミット 取消す

直前のコミット 取消す

git rese・・・不要ファイルをステージング+コミット済み

ステージングエリア:リセット
作業ツリー:そのまま

$ git reset HEAD^
–softオプション・・・ファイル不備を修正後+再コミットしたい

ステージングエリア:そのまま
作業ツリー:そのまま

$ git reset --soft HEAD^
–hardオプション・・・動作確認の為の変更を元の状態に戻す

ステージングエリア:リセット
作業ツリー:リセット

$ git reset --hard HEAD^

2つ以上前のコミット 取消し

git rese・・・変更内容を複数のコミットにまとめ直す

ステージングエリア:リセット
作業ツリー:そのまま

$ git reset 戻したいコミットのハッシュ値
–softオプション・・・複数コミットを一つにまとめる

ステージングエリア:そのまま
作業ツリー:そのまま

$ git reset --soft ハッシュ値
–hardオプション・・・指定コミットを実行した直後の状態に戻す

ステージングエリア:リセット
作業ツリー:リセット

$ git reset --hard ハッシュ値

コミット取消しを取消し

$ git reset --hard ORIG_HEAD

push後、直前のコミット 取消し

コミットメッセージ編集画面で変更

$ git revert HEAD
$ git push origin master

push済み、2つ以上前のコミット 取消し

最新からいくつ目までか指定

$ git revert HEAD...HEAD~最新からの数

又は、コミットメッセージ編集画面で変更

$ git revert HEAD...ハッシュ値
$ git revert --continue
$ git push origin master

コミットメッセージ 修正

直前コミットメッセージ 修正

$ git commit --amend -m "変更コミットメッセージ"
確認
$ git log
簡略表示
$ git log --oneline

2つ以上前のコミットメッセージ 修正

最初のコミット以外

最新からいくつ目か指定

$ git rebase -i HEAD~最新からの数
最初のコミット

1. コミットメッセージ編集画面で変更 古い順で表示

$ git rebase -i --root

2. 編集コミットメッセージの「pick」→「edit」へ変更、保存
3. コミットメッセージ修正

git commit --amend -m "修正コミットメッセージ"

4. 変更を確定

$ git rebase --continue

確認

$ git log
簡略表示
$ git log --oneline