Gitでよく使うコマンド

  • 2022年7月25日
  • 2022年10月11日
  • Git
  • 11View
  • 0件
Git NO IMAGE

GitHubのリポジトリにデータを保存・登録する流れ

$ git init
$ touch README.txt
$ git add README.txt
$ git commit -m 'first commit'
$ git branch -M main
$ git remote add origin リモートリポジトリのアクセス先
$ git push -u origin main

Gitでよく使うコマンド

git add

コマンド説明
git add ファイル名・ディレクトリ名指定したファイル若しくはディレクトリを追加
git add .カレントディレクトリ以下全てを追加

git commit

コマンド説明
git commitコミットする
git commit -m ‘メッセージ’端的に1行のメッセージ付きのコミットをする
git commit -v複数行のメッセージ付きのコミットをする

git remote

コマンド説明
git remote設定しているリモートリポジトリの名前(originなど)
git remote -v設定しているリモートリポジトリのURL
git remote add リモート名 リモートリポジトリのアクセス先リモートリポジトリの新規追加
git remote rm リモート名リモートの削除
git remote rename 旧リモート名 新リモート名リモート名の変更

gitでリモートリポジトリを追加する際に、下記のコマンドを入力します。

$ git remote add origin https://github.com/test01/test01.git
$ git remote add hoge https://github.com/test02/test02.git

「https://github.com/test01/test01.git」というリモートリポジトリに対して、「origin」という名前を設定しています。

名前を設定することによって、pushやpullの際に、毎回リモートリポジトリのアクセスURLを入力しないようにするためです。

更に、リモートリポジトリを追加することができ、名前はそれぞれに対応して設定します。

複数のリモートリポジトリで作業している際に、分からなくなった場合は、「git remote -v」コマンドを入力すると、現在の登録しているリモートリポジトリの確認することができます。

hoge https://github.com/test02/test02.git (fetch)
hoge https://github.com/test02/test02.git (push)
origin https://github.com/test01/test01.git (fetch)
origin https://github.com/test01/test01.git (push)

git push

コマンド説明
git push リモート名 ブランチ名リモートリポジトリのブランチ履歴を更新する
git push –delete リモート名 ブランチ名リモートリポジトリのブランチを削除する
git push リモート名 タグ名リモートリポジトリに指定したタグを更新する
git push リモート名 -tagsリモートリポジトリの全てのタグを更新する

git branch

コマンド説明
git branchローカルブランチの一覧
git branch -aローカルブランチとリモート追跡ブランチの一覧
git branch -m ブランチ名ブランチ名の変更
git branch -d ブランチ名ブランチの削除(masterにmergeされていない場合は、削除されない)

git switch

コマンド説明
git switch 既存のブランチ名既存のブランチへの切り替え
git switch -c 新規ブランチ名新規ブランチを差くせして、切り替える

git merge

コマンド説明
git merge ブランチ名現在のブランチに指定したブランチを統合する
git merge リモート名/ブランチ名現在のブランチに指定したリモートリポジトリのブランチを統合する

3種類のmerge

1つ目は、Fast Foward(ファストフォワード、早送りになるマージ)です。

Fast Fowardとは、ブランチが枝分かれして、マージコミットが作成することがなく、ポインタを指定したブランチに合わせることです。

2つ目は、Auto Merge(オートマージ、基本的なマージ)です。

Auto Mergeとは、それぞれのブランチで開発していた場合に、統合することでマージコミットという新しいコミットを作成するマージです。

Auto Mergeの特徴として、親コミットを2つ持っていることです。

3つ目は、コンフリクトです。

コンフリクトとは、「複数人が同じファイルの同じ箇所を変更した場合に、どの記述を優先したらいいか分からない状態」のことです。

git rm

コマンド説明
git rm ファイル名ファイルの削除
git rm -r ディレクトリ名ディレクトリの削除
git rm –cached ファイル名git上でのみファイルの削除
※ワークツリーにファイルを残っている

ワークツリー(作業環境)でファイルを削除しても、gitでは削除されません。

gitでも削除するには「git rm」コマンドが必要になります。

「git rm –cached」コマンドは、git上でのみファイルを削除して、ワークツリーではファイルが残っている状態になります。

git mv

コマンド説明
git mv ファイル名 移動先ディレクトリ名ファイルの移動
git rm ファイル名 新規ファイル名ファイル名の変更

git status

コマンド説明
git statusワークツリーとステージエリアとリポジトリの変更状況

表示形式

git addされていないファイルがある場合は、下記が表示される。

Changes not staged for commit:
modified: index.html

作業ディレクトリ内で変更されたけれどもまだステージされていないという意味です。

git commitされていないファイルがある場合は、下記が表示されます。

Changes to be committed:
modified: index.html

コミットされるべき変更があるという意味です。

modifiedとは修正されたという意味で、修正ファイルを提示してくれます。

git checkout

コマンド説明
git checkout –ファイル名ファイルの変更の取り消し
git checkout –フォルダ名フォルダの変更の取り消し
git checkout — .全ファイルの変更の取り消し

checkoutコマンドはファイルとブランチの両方に使えますので、名前が同一だった場合にファイルを操作をしていると判別するために、「–」を入力します。

「.(ピリオド)」は全ファイルを意味します。

git log

コマンド説明
git logコミットの変更履歴を表示
git log –onelineコミットの変更履歴を1行で表示

表示形式

git logをした場合には、コミットIDとGitユーザー名、Gitメールアドレス、日付、混みっとメッセージなどの情報が、下記のような形式で表示されます。

commit 8a0ccf183efb4548f286d756d733875cdb01c89b
Author: githunb git01234 git01234@gmail.com
Date: Mon Aug 22 08:34:24 2022 +0900

git pull

コマンド説明
git pull リモート名 ブランチ名リモートリポジトリから最新の状態をローカルリポジトリに反映する
git pull –rebase リモート名 ブランチ名merge型ではなく、rebase型で情報を反映する

全てのpullをrebase型にする場合は、下記コマンドで設定が可能です。

$ git config --global pull.rebase true

git rebase

コマンド説明
git rebase ブランチ名別々のブランチで伸ばしていた開発コミットを繋げ直す

git tag

コマンド説明
git tag タグ名オプションなしのタグの作成(軽量版タグ)を作成
git tag タグ名 コミット名指定したコミットにタグの作成
git tag -a タグ名 -m メッセージ注釈付きでタグの作成

下記の様に日付でタグの作成をすると、いつリリースしたかが分かりやすくなり、いつでも修正を戻すことができます。

$ git tag -a 20220707_01 -m version 20220707_01

git stash

コマンド説明
git stashコミットしていない変更を退避する
git stash list退避した作業を一覧で確認する
git stash apply最新の退避した作業(ワークツリーのみ)の復元
git stash apply –indexステージングの状況も復元
git stash apply スタッシュ名指定したスタッシュの復元
git stash drop最新の退避した作業の削除
git stash drop スタッシュ名指定したスタッシュの削除
git stash drop clear全ての退避した作業の削除

stashは、ワークツリーやステージングで変更したファイルを一時的に退避させるコマンドです。

「作業が途中の状態でコミットはしたくないけど、別のブランチで作業しないといけいない」という状況の時に使います。

HEADを用いたコミットの指定

「HEAD」とは、今作業している場所を示すポインタです。

HEADを使うと、親コミットをさかのぼることができます。

「HEAD~(チルダ)数値」で、一番目の親を起点として、数値分さかのぼることができます。

「HEAD^(キャレット)数値」で、マージによって作成されてたマージコミットがある場合に、数値番目の親コミットを指定する

エイリアスの設定でコマンドの省略

Gitのコマンドはエイリアス(別名)を設定することができ、コマンドを省略することができます。

$ git config --global alias.ci commit
$ git config --global alias.st status
$ git config --global alias.br branch
$ git config --global alias.co checkout

commitコマンドをciに、branchコマンドをbrに省略することができました。

入力する機会が多いコマンドを省略することによって、効率化を図りましょう。

configは設定を変更することができるコマンドで、「–global」はPC全体の設定を変更することができます。

「–global」コマンドを付けない場合は、現在のプロジェクトのみの変更になります。