Gitコマンド集


# 共同開発で使うGitコマンド集

Gitコマンドを使用する際に、良く使うものをまとめました。
完全に自身の備忘録です。



## 基本

```
$ pwd                               //現在位置のパスを表示する。
$ cat ファイル名                     //ファイルをターミナルに表示
$ mkdir ディレクトリ名               //ディレクトリの作成。
$ ls                                //ディレクトリの内容を表示する。
$ git init 　　　　　　    　　　　　//ローカル環境にリポジトリを作成。
$ git clone http://xxxxxx.xxx/xxxx  //リモートリポジトリのコピーを作成する。
```
<br>
# remote

```
$ git remote add origin http://xxxxxx.xxx/xxxx                //ローカルリポジトリをリモートリポジトリに登録する。
$ git remote rm リモートリポジトリ名                           //逆にリモートリポジトリを削除する。
$ git remote seturl origin 変更先のURL                        //URLの変更が可能(間違ったURLを設定してしまった場合)
$ git remote rename 変更前のリポジトリ名 変更後のリポジトリ名   //リポジトリ名を変更する。
```
<br>

## ファイルの削除を記録する(removeの略)

```
$ git rm ファイル名  //ファイルを削除する。
$ git rm -r ディレクトリ名  //ディレクトリを削除する。
$ git rm --cached ファイル名
　//ファイルを残したいとき。ファイルは使うが、gitの記録(リポジトリ)には削除したい。
　//ワークツリーには残っている。
```
<br>

## 削除したファイルを戻す

```
$ git reset HEAD ファイル名
$ git checkout ファイル名
```
<br>
## ファイルの移動を記録する(moveの略)。

※以下のコマンドと同じ
　mv 旧ファイル名 新ファイル名
　git rm 旧ファイル名
　git add 新ファイル名

```
$ git mv 旧ファイル名 新ファイル名
```
<br>

## 現在の状態を確認する。

```
$ git status  　　　　　       //gitの記録状態を確認する事ができる。
$ git log    　　　　　        //gitのlogを確認する事ができる。
$ git log --oneline 　　       //gitのログを一行で表示する。
$ git log -p ファイル名      　//ファイルの変更分を表示する。
$ git log -n "コミット数"      //最近のコミットだけ表示する。
$ git log --since=2020-12-1   //2020年12月1日以降のログを出力する。
$ git remote 　　　           //存在しているリモートリポジトリ(アクセス先)の一覧表示ができる。
$ git remote -v               //-vオプションでurlなど詳細まで表示可能。
```
<br>
## 変更差分を確認する

```
$ git diff             //git addする前の変更分
$ git diff ファイル名
$ git diff --staged　  //git addした後の変更分
```
<br>
## 変更を記録する。

```
$ git add ファイル名                   //ファイルをステージングエリアに追加する。
$ git add .                           //変更した内容をすべてステージングエリアに追加する。
$ git commit -m "コミットメッセージ"   //リポジトリにコミットする。
$ git commit -v                       //-vオプションを指定することでgitエディターが開く。
$ git push origin リモートブランチ名   //リモートリポジトリにプッシュする。
```
<br>
## checkout

```
$ git checkout ブランチ名  　　　//ブランチを切り替えたい時に使用するコマンド
$ git checkout -b ブラント名　　 //「-b」オプションを指定することで、ブランチの作成とチェックアウトが同時にできる。 
$ git chechout -f ブランチ名     // 変更内容を吐きして、強制的にブランチを切り替える
```
<br>
## ファイルの変更を取り消す

```
$ git checkout -- ファイル名      //--を付けているのはブランチ名とファイル名が被った時にどちらを指しているのか、Gitが分かるようにするため。
$ git checkout -- ディレクトリ名  
$ git checkout --.              //全変更を取り消す
```
<br>
## ステージした変更を取り消す。

```
$ git reset HEAD ファイル名      //HEADは最新のコミットのこと
$ git reset HEAD ディレクトリ名
$ git reser HEAD                //全変更を取り消す。
```
<br>
## 直前のコミットをやり直す

注意)リモートリポジトリにPushした内容はやり直すのはNG
別の誰かがpushされた内容を自分のワークツリーに取り込んで、作業後リモートリポジトリにpushしても取り込めない為

```
$ git commit --amend  
```
<br>

## コミット前の内容を一時的に避けておく

```
$ git stash
　//コミット前の内容を一時的に退避させておける(今の作業を中断して別ブランチに切り替えたい)。
　//stachはこっそり隠すの意味。
　//実行結果
　Saved working directory and index state On {作業ブランチ名}: {コメント}
$ git stash save "コメント"      //コメントを残すことも可能。
$ git stash apply　              //元の作業ブランチに戻り、退避した内容を今いるブランチに適用する。
$ git stash drop               　//直近のスタッシュを削除する。
$ git stash clear                //スタッシュをすべて削除する。
```
<br>

## branch
```
$ git branch ブランチ名                  //ブランチの作成
$ git branch                            //作成されたブランチの確認
$ git pull origin リモートブランチ名     //リモートリポジトリの内容を取得し、現在のブランチに取り込む（「fetch」と「merge」を行う）
$ git fetch 
　//Web上に保存されているコミットログ(更新記録)を、自分のパソコンに反映させる。
　//開発している人全員の更新記録を自分のパソコンに取り込むことが出来る。
  //(更新がなければ何も表示されない。)　
$ git merge ブランチ名 //ローカル内のみでブランチを統合する事が出来る。　　　　
$ git rebase ブランチ名
```

<br>
## コマンドにエイリアスをつける

```
$ git config --global alias.エイリアス名 commit  //--globalでPC全体に反映される。
```
<br>

## 管理しないファイルをGitの管理から外す方法

```
.gitignore //ファイルを指定する。
```
<br>
## その他

```
//コミットメッセージの書き方
//1行目 変更内容の要約
//2行目 空白
//3行目 変更した理由

//originはリモートのアクセス先を示したもの。

```