ローカルリポジトリの操作について
はじめにGitに保存するための流れについての説明
Gitは次の順番で保存される仕組みです
- ワークツリー(PCの作業環境/ディレクトリ)
- ステージ(Git内部の仮置き場/コミット前)
- ローカルリポジトリ(Git内部の貯蔵庫/コミット後)
ローカルリポジトリへ記録する
ワークツリーからステージへ追加します
$ git add .
//ステージへ現在のファイルをアップします
// $ git add ファイル名を指定
// "."は全部変更しますという意味です
//ファイル名やディレクトリ名を指定することもできます
// $ git add ファイル名
// $ git add ディレクトリ名
//特定の拡張子ファイルのみ指定することもできます
// $ git add *.php
* ステージに追加した変更を取り消したい
$ git restore --staged ファイル名
// ディレクトリごと取り消したい
// $ git restore --staged ディレクトリ名
// 全変更を取り消したい
// $ git restore --staged .
ステージからローカルリポジトリへ追加します
コマンドでファイル名を指定する場所にはディレクトリ名を指定することもできます
ドット "." を指定すれば全てのファイル/ディレクトリを指定します
$ git commit -m "コミットメッセージ"
// "コミットメッセージ" は変更内容を記載します
ローカルリポジトリへコミットした履歴を確認する
$ git log
git log から抜ける
- 半角の
q
キーを押してエンターを押す
直前のコミットの状態に作業ディレクトリの編集内容を戻す
addする前の状態から、直前のコミットの状態に戻す
$ git restore ファイル名
// $ git restore ディレクトリ名
// 全選択
// $ git restore .
特定のコミットまでPCの作業環境を戻す
//戻す対象のハッシュ値を調べる
$ git log
// commit ************************
$ git reset --hard ハッシュ値
ブランチについて
ブランチを新規作成する
$ git branch 任意のブランチ名
// 例
// $ git branch feature
ブランチを新規作成した後に切り替える
$ git switch -c feature
// $ git switch -c 任意のブランチ名
分岐したブランチの内容を取込む
$ git merge 存在するブランチ名
// 現在のブランチへ、対象ブランチのコードを取込む
// git merge 対象のブランチ名
ブランチを切り替える
git checkout 存在するブランチ名
// ブランチの切り替え前に上書き(addおよびput)が
// 行われていない場合エラーとなります
// エラーが出た場合は、上書き操作が必要です
Git Hubへアップロード
GitHub(リモート)にアップロードする
-
git push
を実行することでリモートにアップロードができます
$ git push origin
// ”origin”はリモートサーバーを指します
もしも次のようなエラーが発生した場合
fatal: The current branch main has no upstream branch.
To push the current branch and set the remote as upstream, use
git push --set-upstream origin main
//訳
//現在のブランチのメインには上流のブランチがありません。
//現在のブランチをプッシュし、リモートをアップストリームとして設定するには、次を使用します
//git push --set-upstream origin main
-
git push origin
だけではGitHubへpushすることができないことを指しています。 - 現在の作業ブランチにリモートリポジトリのブランチ(上流ブランチ)が無いためです
上流ブランチの紐付けは次のコマンドで確認できます
$ git branch -vv
- 上流ブランチが
main
であることが確認できます
- GitHubにpushしたい場合はよって今回の場合は上流リポジトリ名を追記する必要があります
- コマンドを実行する場合、SSHのパスフレーズが求められる場合があります
$ git push origin main
- 上流ブランチを省略できるよう恒久的に設定する方法がエラーにも表示された以下のコマンドです
- コマンドを実行することで
git push
のみで上流ブランチに対してpushができるようになります
git push --set-upstream origin main
// または
git push -u origin main
-
push
に成功するとブラウザのGitHubにpushした内容が表示されています
新規ブランチのコミットをリモートへプッシュする
GitHubにまだ登録されていない新規のローカルブランチを
GitHubへpushする場合、ローカル側でコミットが完了してから
次のコマンドを実行します
git push origin 新規ブランチ名
//ブランチ名、exampleを指定してプッシュする