◀️ 前のページGitHubに反映させる方法cd移動してリポジトリを初期化して新しい作業をする

Git コマンドとシステムコマンド

  i                        insert キーボードコマンド 
  escボタン押         insert 取り消し 戻る
  :wq                    保存して終える
  q                        終了
  cat                      cat ファイル : でファイル内容確認する
  🔼 キーボード            コマンドヒストリィでキー押す
 
     ls -l    : 詳細な情報を含めてファイルやディレクトリのリストを表示します。
     ls -a    : 隠しファイルも含めてリストを表示します。
     ls -h    : サイズなどを人間が読みやすい形式(KBやMBなど)で表示します。  

  man                      マニアル見る
  cd  ..                   戻る
  cd   /                   絶対パスの先端
  cd   ~                   チルダー 自分のディレクトリ  以下例
  ~/documents              :ドキュメントフォルダのパス
  cd ~/documents/vite       :ドキュメント内のviteアプリフォルダに移動 
  touch ~/desktop/test.html :デスクトップにファイルtest.htmlを作成する
    └ 「touch」ファイルを作成するコマンド

  git clone             の後にコピーしたURL( githubを起動しリポジトリを作り、HTML のURL )
  git add -A            git管理下のディレクトリの、全ての「追加・変更・削除」がaddされます。git add –all も同じ意味です。
  git add --all         上 同じこと 
  git checkout	       チェックアウト(ブランチの作成)
  git add	             ステージングエリアにファイルを追加
  git commit	         gitレポジトリにファイルをコミット
  git merge	           ブランチを統合
  git status	         現在の状態を確認

  date                        日付
  cal                         カレンダー機能
  ls -a                このコマンドにより、隠しファイルとディレクトリを含む全てのアイテムが表示されます。
  open -a "TextEdit" config  config ファイルをテキストエディタで開きます。このコマンドを使用します。

Git の用語
# origin は、あなたが現在作業しているローカルのGitリポジトリに関連付けられた、リモートリポジトリのエイリアス(別名)です。
# fetch はリモートリポジトリから更新を取得するためのコマンドであり、
# push はローカルリポジトリの変更をリモートリポジトリにアップロードするためのコマンドです。
# .gitignore とはGit の管理下にあるファイルのうち、バージョン管理しないものを指定するための設定ファイルのことです。

Gitの登録 設定

Git は、管理対象のファイルやディレクトリの変更を追跡し、変更内容を記録します。しかし、バージョン管理したいファイル以外にも、プログラムのビルド時に生成される一時ファイルや、外部から取り込んだライブラリのファイルなど、バージョン管理する必要のないファイルが存在する場合があります。

このような場合に、.gitignore ファイルを使用して、Git の管理下から除外するファイルを指定します。.gitignore ファイルは、プロジェクトのルートディレクトリに置くことが一般的です。.gitignore ファイルには、以下のような指定方法があります。

・ファイル名を直接指定する(例: .log など)

・ディレクトリを指定する(例: /tmp/ など)

・正規表現を使って指定する(例: ^/abc/..log$ など)

これらの指定により、指定されたファイルやディレクトリは Git の管理下から除外され、Git の操作対象から外されます。ただし、.gitignore に指定されたファイルは、既に Git の管理下にある場合には除外されず、変更を加えた場合には再度 Git の管理下に入ります。

登録

#git config --global は、Git のグローバル設定を行うコマンドです。Git は、各リポジトリ毎に設定が行われているため、特定のリポジトリだけでなく、全てのリポジトリで共通の設定を行いたい場合に使用します。

--global オプションを指定することで、ユーザー単位での設定が可能となります。 git config --global コマンドに続けて、設定する項目と値を指定することで、Git の設定を変更することができます。例えば、以下のような設定があります。       

これらの設定を行うことで、Git の操作をよりスムーズに行うことができます。
なお、--global オプションを省略した場合には、現在操作しているリポジトリのみに対する設定が行われます。

ターミナルにて、git push origin masterではなく、git push origin mainと入力すると、無事リモートリポジトリにpush
masterは差別を表し嫌われているのか

 Gitのローカルリポジトリには、以下の情報が含まれます。

        1-ファイルの履歴: リポジトリに含まれるすべてのファイルに関する変更履歴が保存されます。それぞれの変更は、コミットと呼ばれる単位で記録されます。

        2-ブランチ: リポジトリ内の異なるバージョンを分離するための仕組みであり、それぞれのブランチには、独自のコミット履歴があります。

        3-タグ: 特定のコミットにラベルを付けて、後でそのコミットに簡単にアクセスできるようにするためのマークです。

        4-リモートリポジトリの情報: ローカルリポジトリがリモートリポジトリと同期されているかどうかを追跡するための情報が含まれます。これには、リモートリポジトリのURLやブランチのトラッキング情報などが含まれます。

        5-設定: Gitの設定ファイルがローカルリポジトリに含まれ、それぞれのリポジトリに独自の設定が保存されます。これには、ユーザー名やメールアドレス、コミットメッセージのテンプレートなどが含まれます。

以上が、Gitのローカルリポジトリに含まれる情報の要約です。

"origin"とは、
    リモートリポジトリのデフォルトの名前であり、通常はリモートリポジトリのURLを指します。
"master"は、
    デフォルトのブランチ名であり、Gitの新しいリポジトリを作成すると、自動的に"master"ブランチが作成されます。
"origin"と"master"の関係は、
    ローカルリポジトリとリモートリポジトリの接続を表します。
    ローカルリポジトリで作業し、変更をコミットすると、変更履歴はローカルの"master"ブランチに保存されます。
    その後、変更をリモートリポジトリに反映させるために、"git push"コマンドを使用して、
    ローカルの"master"ブランチをリモートの"master"ブランチにプッシュすることができます。
    これにより、リモートリポジトリの"master"ブランチが最新の変更履歴に更新されます。
また、"origin"という名前は変更することができます。
例えば、複数のリモートリポジトリを使用する場合には、異なる名前を使用することができます。
同様に、"master"ブランチも名前を変更することができます。ただし、
"master"という名前はGitのデフォルトのブランチ名であるため、使用されることが一般的です。

"origin master" は、
    Gitで使用されるリモートリポジトリのブランチ名であり、ローカルリポジトリには直接存在しません。
    "origin master" は、リモートリポジトリの "master" ブランチを指します。
   Gitの基本的なワークフローでは、
   ローカルリポジトリで作業を行い、変更をコミットしてから、リモートリポジトリに変更を反映させるために "git push" コマンドを使用します。
   このとき、ローカルリポジトリのブランチ名を指定し、変更を反映させたいリモートリポジトリのブランチ名を指定します。
   たとえば、"git push origin master" は、ローカルリポジトリの "master" ブランチの変更をリモートリポジトリの "master" ブランチにプッシュするコマンドです。
   したがって、"origin master" は、ローカルリポジトリに直接存在するものではなく、
   リモートリポジトリのブランチ名を指す用語であることに注意してください。
   
git fetch origin" は、
   ローカルリポジトリの情報を更新するためのGitコマンドですが、実際にはローカルリポジトリのブランチを直接更新するわけではありません。
   代わりに、リモートリポジトリから最新の変更を取得して、ローカルリポジトリの "origin" という名前のリモートブランチを更新します。
   具体的には、"git fetch origin" コマンドは、リモートリポジトリの最新の状態を取得し、リモートリポジトリのブランチ情報をローカルリポジトリに反映します。
   これにより、ローカルリポジトリの "origin" という名前のリモートブランチが更新され、ローカルリポジトリの "origin/master" などのリモートブランチを参照することができます。
   これにより、"git diff" や "git merge" などのコマンドで、リモートリポジトリの最新状態とローカルリポジトリの差分を比較することができます。
   したがって、"git fetch origin" は、ローカルリポジトリの情報を更新するためのコマンドであり、ローカルリポジトリのブランチを直接更新するわけではありません。

ローカルリポジトリには通常、"master" と "origin/master" という2つのブランチ情報があります。
   "master" ブランチは、ローカルリポジトリにある最新のコミットを指します。このブランチは、通常、新しいコミットを作成するために使用されるメインブランチです。
   一方、"origin/master" ブランチは、リモートリポジトリの "master" ブランチを指します。
   "git fetch origin" コマンドなどでリモートリポジトリから最新情報を取得した後、ローカルリポジトリの "origin/master" ブランチが更新されます。
   このブランチは、リモートリポジトリの最新の状態をローカルで確認するために使用されます。
   したがって、"master" ブランチと "origin/master" ブランチは、それぞれ異なる目的を持つブランチ情報であり、
   両方がローカルリポジトリに存在することが通常です。

リモートリポジトリは、
   通常、共有される中央リポジトリまたはコードホスティングサービスに保存されるリポジトリです。リモートリポジトリには、次のような情報が保存されています。
     1-コードのバージョン管理情報
        リモートリポジトリには、Gitでバージョン管理されているプロジェクトのコードが含まれます。Gitは、ファイルやフォルダの変更履歴を保存し、それぞれのバージョンを一意の識別子で管理します。これにより、複数の人が同じプロジェクトを同時に編集しても、変更履歴を保持しながら、コードの競合や矛盾を解決することができます。
     2-ブランチ情報
        リモートリポジトリには、Gitで管理されているすべてのブランチ情報が含まれます。これには、マスターブランチ、フィーチャーブランチ、リリースブランチ、ホットフィックスブランチなどが含まれます。ブランチ情報は、プロジェクトの状態を管理するために使用されます。
     3-コミット情報
        リモートリポジトリには、Gitで管理されているコミット履歴が含まれます。これには、変更されたファイル、誰が変更を加えたか、変更された時点などの情報が含まれます。これらの情報は、開発者が特定のバージョンのコードをチェックアウトする際に使用されます。
     4-タグ情報
        リモートリポジトリには、Gitで管理されているタグ情報が含まれます。タグは、プロジェクトの特定のバージョンに名前をつけるために使用されます。これにより、開発者が特定のバージョンのコードを簡単に見つけることができます。
     5-その他のメタデータ
        リモートリポジトリには、Gitで管理されているプロジェクトに関連するその他のメタデータも含まれます。これには、誰が変更を加えたか、コードの変更が承認されたかどうか、コードレビューのコメントなどが含まれます。これらの情報は、プロジェクトの進捗をトラッキングするために使用されます。

以上のように、リモートリポジトリには、Gitでバージョン管理されたプロジェクトに関連するす

機能追加した新しいブランチはどこで作られるのですか
     新しい機能追加用のブランチは、ローカルのマスターブランチから切り離された新しいブランチとして作成されます。
     このブランチは、通常はその機能の名称や目的を反映した名前が付けられます。
     新しい機能追加ブランチを作成すると、ローカルのマスターブランチとは独立して作業を進めることができます。
     これにより、新しい機能の開発がマスターブランチに影響を与えることなく、並行して進めることができます。
     開発が完了したら、新しい機能追加ブランチはマスターブランチにマージされます。
     マージすることで、新しい機能がマスターブランチに取り込まれ、プロジェクト全体のコードが更新されます。

その更新はローカルリポジトリですかリモートリポジトリとの関係は
    機能追加ブランチでの開発が完了し、マスターブランチにマージされた場合、まずはローカルリポジトリのマスターブランチが更新されます。
    つまり、マスターブランチの最新の状態は、ローカルリポジトリにあることになります。
    その後、ローカルリポジトリのマスターブランチの最新状態を、リモートリポジトリにプッシュすることで、リモートリポジトリも最新の状態に更新されます。
    つまり、マージされた変更は、まずローカルリポジトリのマスターブランチに反映され、
    その後、リモートリポジトリに反映されるという流れになります。
    ただし、リモートリポジトリは複数の開発者が共有するため、他の開発者が更新した場合には、自分のローカルリポジトリに反映するために、
    リモートリポジトリからプルする必要があることに注意してください。
他の開発者がリモートリポジトリにプッシュした変更を、自分のローカルリポジトリに反映するためには、以下のコマンドを使用します。
    git pull origin master
    このコマンドは、リモートリポジトリの master ブランチから変更をダウンロードして、自分のローカルリポジトリの master ブランチに反映します。
    このコマンドを実行する前に、変更をダウンロードする前に、自分のローカルリポジトリの変更をコミットしておくことをお勧めします。
上に戻る ↑

リモートをローカルに反映する

以下のコマンドは、指定したリモートリポジトリ(remote-name)のブランチ(remote-branch)をローカルのブランチ(local-branch)に直接反映させます。

git pull remote-name remote-branch:local-branch

git pull remote-name remote-branch:local-branch の remote-name は GitHub のリポジトリ名ではなく、リモートのエイリアス(例: origin)を指定する。

git pull <remote-name> <remote-branch>:<local-branch> を実行した後に コミットする必要があるかどうか は、マージ方法と変更内容によります。

git pull の動作

git pull origin main:feature-branch

この場合は、origin(リモート名)から main ブランチを取得 、ローカルの feature-branch に統合

フォルダー名の代名として使われるのは origin などのリモート名 GitHub のリポジトリ名は そのままフォルダー名になることが多い ですが、Git のコマンドでは リモートリポジトリのエイリアス(例: origin, upstream) を使って参照します。

例: git remote -v の結果

    origin    https://github.com/user/myproject.git (fetch)
    origin    https://github.com/user/myproject.git (push)

この場合、GitHub のリポジトリ名は myproject ですが、 Git コマンドでは origin という代名(エイリアス) を使って参照します。

リポジトリ名 は、Git のコマンドでは origin などのリモート名(代名)を使う

リモート名(代名)の指定方法 Git のリモートリポジトリを追加する際に、好きな名前を付けることができます。
リモートを追加するときに指定

  git remote add myrepo https://github.com/user/myproject.git
この場合、myrepo がリモート名(代名)になります。

リモート名を確認 リモート名(代名)を確認するには、次のコマンドを実行します:

  git remote -v

指定したリモート名で git pull を実行

  git pull myrepo main
これにより、myrepo というリモートリポジトリから main ブランチの変更を取得し、ローカルの main ブランチに統合します。

リモート名を変更 ・削除

リモート名を変更する すでに登録されているリモート名を変更することもできます:

    git remote rename oldname newname

    例:
    git remote rename origin myrepo
これで origin というリモート名が myrepo に変更されます。

リモートを削除
不要になったリモート名を削除するには:

    git remote remove myrepo

GitHub上の「Add a README」ボタンを押すと、そのリポジトリに README.md ファイルが追加され、GitHub側で直接コミット されます。

しかし、ローカル環境からコミットすることも可能 です。以下の手順で、GitHub上の README.md をローカルに取り込み、ローカルの変更と合わせてコミットできます。


%  git pull origin master:master   # リモートリポジトリからローカルリポジトリに同期して持って来る命令 以下の画面で OK

        remote: Enumerating objects: 3, done.
          remote: Counting objects: 100% (3/3), done.
          remote: Compressing objects: 100% (3/3), done.
          remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
          Unpacking objects: 100% (3/3), 954 bytes | 238.00 KiB/s, done.
          From https://github.com/mich360/make-the-form
             fa9e954..e3f6126  master     -> master 以下略
          README.md	が増えている     
  

この結果、リモートリポジトリからローカルリポジトリに正常に最新の変更が反映され、ローカルのmasterブランチが最新の状態になったことを意味します。

ローカルをリモートに反映する

リモートリポジトリーにプッシュ

  git push remote-name  local-branch : remote-branch   これを実際は
  git push origin master: master

ローカルのmasterブランチの変更をリモートのmasterブランチに送信するものであり、統合(マージ)そのものを行うものではありません。

master: 最初のmasterは、ローカルリポジトリのブランチ名を指します。このローカルのmasterブランチがリモートリポジトリに送られます。

master: 2番目のmasterは、リモートリポジトリのブランチ名を指します。このブランチにローカルのmasterブランチの変更を送ります。

%  git remote 
origin
%  git remote rm origin   :リモートリポジトリoriginをローカルリポジトリの設定から削除するコマンドです。
%  git remote add origin  https://github.com~~github上のうURLのコピーを貼り付け

git remote add origin <新しいリモートリポジトリのURL>、これはリモートリポジトリを削除した後、リモートリポジトリのURLを新たに設定する

ローカルブランチ (master) の確認
ローカルリポジトリで作業しているブランチを確認するためには、以下のコマンドを使います:

  git branch

リモートリポジトリ (origin/master) の確認
リモートリポジトリにあるmasterブランチの内容を確認するには、次のコマンドを使います:

    git branch -r

git init --bare /path/to/repository.git

新しい作業を開始する際

既存のリポジトリとは異なるリモートリポジトリに対して作業を行う場合、以下の手順に従って設定を行うことができます。
新しいリモートリポジトリに対して作業を行う場合、まずはそのリポジトリをリモートとして追加します。
これには以下のコマンドを使用します。

git remote add new-origin <リモートリポジトリのURL> 
には新しいリモートリポジトリのURLを指定します。

new-origin という名前で指定したリモートリポジトリが登録されます。

この時点では new-origin という リモート名 は登録されますが、 そのリモートには まだブランチが存在しません。
リモートリポジトリ(new-origin)にプッシュして初めてブランチが作られます。

リモートリポジトリの追加が成功したかどうかを確認するには、以下のコマンドを使用します。

git remote -v
追加したリモートリポジトリが一覧表示されるはずです。
git checkout -b new-feature
                   または

git switch -c new-feature
これで ローカルの new-feature ブランチ が作られる。

作成したブランチをリモートにプッシュ

  git push new-origin new-feature
これで リモートリポジトリ(new-origin)に new-feature ブランチが作られる。

コミットとプッシュ:作業を行い、変更をコミットした後に、新しいブランチをリモートリポジトリにプッシュします。以下のコマンドを使用します。

git add .

git commit -m "Your commit message here"

git push new-origin new-feature  
: new-feature は新しいブランチ名です。

git remote コマンド: このコマンドは、Git リポジトリに関連付けられたリモートリポジトリ(通常は GitHub や GitLab などのサーバー上のリポジトリ)を表示します。

この場合、origin という名前のリモートリポジトリが設定されていることがわかります。

この origin は、通常、リポジトリをクローン(複製)したときに自動的に設定され、リポジトリのデータのやりとりに使用されます。

以上の手順で、新しいリモートリポジトリに対して作業を開始し、変更をプッシュすることができます。

新しい作業を行うたびに、リモートリポジトリを追加し、新しいブランチを作成して作業を進めることができます。

上に戻る

VSコードのソース管理に数値が増やさない対応策について

コマンド:

git remote
このコマンドは、Git リポジトリに関連付けられたリモートリポジトリ(通常は GitHub や GitLab などのサーバー上のリポジトリ)を表示します。
この場合、origin という名前のリモートリポジトリが設定されていることがわかります。
この origin は、通常、リポジトリをクローン(複製)したときに自動的に設定され、リポジトリのデータのやりとりに使用されます。
コマンド:
git status 
このコマンドは、Git リポジトリ内の現在の状態を表示します。以下の情報が表示されています:
"On branch main": あなたが現在 main ブランチ上にいることを示しています。
ブランチは、異なるプロジェクトのバージョンや分岐を管理するためのもので、main は一般的なデフォルトのブランチ名です。

  "Your branch is behind 'origin/main' by 115 commits, and can be fast-forwarded": 
  リモートリポジトリ(origin)の main ブランチに、ローカルの main ブランチが 115 コミット進んでいることを示しています。
  これは、リモートリポジトリに新しい変更があることを示しています。

  "Changes not staged for commit": 
  コミット対象になっていない変更があります。つまり、ファイルに変更があり、それらの変更をコミットに含めていないことを示しています。

  "Untracked files": 
  Git リポジトリに追加されていない新しいファイルがあります。
  public/canape.png というファイルがリポジトリに追加されていません。

  状況の理解: 現在の状況は、リモートリポジトリから新しい変更があることを示しています。
  また、ローカルでファイルの変更が行われていますが、これらの変更はまだコミットされていないようです。
  また、新しいファイル public/canape.png がリポジトリに追加されていません。

対処するためのステップ: リモートリポジトリから最新の変更を取得: リモートリポジトリの変更を取得して、ローカルの main ブランチを最新の状態に更新します。 code

  git pull origin main
ローカルでの変更をコミット: ファイルの変更をコミットし、ローカルリポジトリを更新します。
code
          git add src/App.css src/App.jsx
          git commit -m "ファイルを変更しました"
        
新しいファイルを追加: 新しいファイル public/canape.png をリポジトリに追加します。
code
  git add public/canape.png
変更をコミット: 新しいファイルを含む変更をコミットします。
code
          git commit -m "新しいファイルを追加しました"
変更をリモートリポジトリにプッシュ: コミットした変更をリモートリポジトリにプッシュして、他の開発者と共有します。 code
   git push origin main

     
 git pull origin mainを実行したらエラー

code
     git add src/App.css src/App.jsx
     git commit -m "一時的な変更のコミット"
または
code
      git stash
   
どちらかを選んで実行します。前者は変更をコミットする方法で、後者は変更を一時的に退避させる方法です。
プルコマンドを再実行してリモートの変更を取得。
code
      git pull origin main
競合の解決: プルコマンドが正常に完了したら、競合が発生していないか確認します。競合がある場合、Gitは競合箇所を示すメッセージを表示します。
競合の解決とコミット: 競合を解決し、変更を再度コミットします。
code
       git add src/App.css src/App.jsx
       git commit -m "競合を解決"

git stash コマンドを使用して、変更を一時的に退避させました。これにより、ローカルの変更が一時的に取り除かれ、プル操作を実行できるようになります。

プル操作を再試行して、リモートの変更を取得します。
code
               git pull origin main
このコマンドにより、リモートの変更がローカルにマージされます。プル操作が成功したら、競合が発生しなかったことを示します。変更が正常に統合されたら、ローカルの変更を再適用することができます。
ローカルの変更を再適用するには、以下のコマンドを実行します。
code
               git stash pop
これにより、一時的に退避させた変更が現在の作業ディレクトリに戻ります。競合が発生した場合、競合を解決して変更をコミットできます。競合が発生しなかった場合、変更はそのまま反映されます。
これにより、リモートの変更を取得し、ローカルの変更を一時的に退避させた後、必要に応じてローカルの変更を再適用できます。

競合箇所を手動で編集し、競合を解消します。どちらの変更を保持するか、または変更を組み合わせるかを決定し、不要な行(<<<<<、=====、>>>>>の行)を削除します。

ファイルを保存します。

競合を解決したファイルをステージ(git add)に追加します。 
code
          git add src/App.jsx
コミットメッセージを記入し、競合を解決した変更をコミットします。
code
          git commit -m "競合を解決しました"
その後、変更をリモートリポジトリにプッシュして、リモートとローカルのブランチを同期させます。
code
          git push origin main
これらのステップに従って競合を解決し、変更をコミットおよびプッシュすることで、リモートとローカルのブランチが同期されます。




% git add src/App.jsx 実行したら

fatal: not a git repository (or any of the parent directories): .git
naomichimasumoto@michi-2022MacBook-Pro vite % 


エラーメッセージ "fatal: not a git repository (or any of the parent directories): .git" は、カレントディレクトリがGitリポジトリ内にないことを示しています。このエラーが発生する主な理由は、カレントディレクトリがGitリポジトリのサブディレクトリではないか、またはGitリポジトリが正しく初期化されていない可能性があります。

以下の手順で問題を解決できます:

カレントディレクトリを正しいGitリポジトリのディレクトリに移動してください。たとえば、vite-project ディレクトリ内で作業している場合、以下のコマンドを使用してディレクトリを移動します:
code
               cd vite-project
  
カレントディレクトリがGitリポジトリのディレクトリ内にあることを確認してください。
Gitリポジトリの存在を確認するために、以下のコマンドを実行します:
code            

 ls -a

 
カレントディレクトリに .git というディレクトリが存在すれば、それはGitリポジトリのルートディレクトリです。

.git ディレクトリが存在しない場合、カレントディレクトリがGitリポジトリである必要があります。Gitリポジトリを初期化するには、以下のコマンドを実行します:

git init
これにより、現在のディレクトリが新しいGitリポジトリとして初期化されます。

カレントディレクトリが正しいGitリポジトリ内にある場合、ファイルをステージ(git add)に追加することができます:
git add src/App.jsx
これらのステップを実行して、問題を解決できるはずです。必要に応じて、正しいディレクトリ内で作業していることを確認し、Gitリポジトリが正しく初期化されていることを確認してください。