kiyoのアウトプットのたまり場

主にプログラミングの学習のアウトプットをします。

gitコマンドとか

※常時編集

新規リポジトリ作成からGithubへのpushまで

$ git init                            #リポジトリを新規に作成(既に存在するリポジトリをサイド初期化)
$ git add -A                          #オプションをつけることでまとめて登録できる
$ git commit -m "Initial commit"      #最低一回はコッミトしないとpushできない
$ git remote add origin <github.url>  #リポジトリの紐付け
$ git push -u origin master           #リモートリポジトリにpush

補足

$ git add $ git addは、指定したファイルをインデックスに登録してコミット対象にするコマンド。

$ git add <file>
$ git add text.txt

$ git add -u$ git add -A$ git add . オプションを付けることで、まとめて登録することができる。

git add -u (git add --update) バージョン管理されていて、変更があったすべてのファイルがaddされる 変更されたファイル、削除されたファイルがaddされる バージョン管理されていないファイルはaddされない 新しく作られたファイルはaddされない

git add -A (git add --all) 変更があったすべてのファイルがaddされる 変更されたファイル、削除されたファイル、新しく作られたファイル、すべてがaddされる

git add . カレントディレクトリ以下の、変更があったすべてのファイルがaddされる カレントディレクトリ以下の、変更されたファイル、削除されたファイル、新しく作られたファイル、すべてがaddされる

-u は --set-upstreamの省略 このオプションをつけるとローカルリポジトリの現在のブランチの上流をorigin master に規定したことにる。 このオプションをつけると、次からは git push だけで上記のコマンドと同じことを実施できる。さらに、git pull だけでも git pull origin master と同じ意味になる。

originとは リモートリポジトリのアクセス先に対してGitがデフォルトでつける名前のこと。

ざっくりコマンド一覧

ローカルのリポジトリの内容をリモートのリポジトリに送り込む
$ git push

リモートのリポジトリの内容をローカルのリポジトリに取り込む
チーム開発などをしていて他人のbranchを確認するときなどに使う
$ git fetch

リモートのリポジトリの内容をローカルのリポジトリに取り込み、
次に、現在のローカルのブランチに対して、それに対応するリモートのブランチをマージする
$ git pull

ローカルの変更を確認する
$ git status

リモートとローカルのファイルの差分を抽出する
$ git diff <ファイル名>

commitの変更履歴をみる
$ git log

リモートにプッシュ
$ git push origin <ブランチ名>

addの取り消し
$ git reset HEAD <ファイル名>

commitの取り消し
$ git reset --hard HEAD^

commitの打ち消し
$ git revert <コミットのハッシュ値>

ローカルでブランチを作成
$ git branch <ブランチ名>

ローカルでブランチを切り替え
$ git checkout <ブランチ名>

ローカルのブランチをリモートに反映
$ git push -u origin <ローカルのブランチ名>

ブランチをマージする
$ git merge <ブランチ名>

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

.gitgnoreファイルに指定することで、ファイルをGitの管理から外すことができる。 どういったファイルを管理するのか?

  • 自動生成されるファイル
  • パスワードが記載されているファイル

Gitのリモートリポジトリに間違えてpushしてしまった時の解消法(正しい方法なのかはわからない)

コミットログの確認

$ git log --oneline
a6ba0a0 間違えてpushしたコミット
e04f025 commitB
11b03cd commitA

本来作業するはずだったブランチを作成、または、移動しそこでpushする

$ git checkout -b feature/branch # branchの作成&切り替え
$ git push origin feature/branch # リモートへpush

間違えてpushしてしまったcommitをresetして強制pushする

$ git reset --hard e04f025
$ git push -f origin develop

ブランチとリポジトリの相関図

image.png リモート追跡ブランチ (remote-tracking branch)」「上流ブランチ (upstream branch)」 リモート追跡ブランチは「ローカルリポジトリにあって、他のリポジトリの状態を追跡するブランチ」のこと 上流ブランチは「引数なしで git pull したとき対象になるブランチ」のこと

上の図でいうと、origin/masterはローカルブランチmasterの上流ブランチ

Git GraphというVScode拡張機能

Gitのコミットグラフをみれる拡張機能。慣れないうちはコミットグラフが常に可視化されているのは心強い。(はちゃめちゃなコッミトの仕方の防止に繋がる) image.png