自由気ままに書いちゃおう

好きなことをつらつらと・・・

AWS CodeCommitの始め方3(Gitの使い方:補足)

前回、前々回でCodeCommitについて記載しておりますが、
今回はGitの使い方について少し補足致します。
私が最初に躓いたところを個人の備忘も兼ねて記載しています。
 

www.guri2o1667.work

www.guri2o1667.work

 

■ローカルリポジトリのブランチに設定したリモートリポジトリについて

ローカルリポジトリを作成した際(=git initで作成したローカルリポジトリとします)、
ローカルPC上に任意のフォルダがmasterブランチとなります。
その際、気をつけておきたいのが、
ブランチごとにリモートリポジトリを認識している為、仮に複数のローカルリポジトリ(ブランチ)を作成した場合、
その一つ一つに対してリモートリポジトリを認識させてあげる必要があります。

言葉だけでは中々イメージしづらいと思いますので、実例を下記しております。

状態1)git init にてlocalrepo3というフォルダをローカルリポジトリとしておき、既にリモートリポジトリを認識している状態とします。

f:id:guri2o1667:20200517181028p:plain

状態2)状態1の実施後に、localrepo3と同階層にlocalrepo4というフォルダを新規作成し、git init を実行します。

f:id:guri2o1667:20200517181407p:plain

上記の状態1、2の確認後、再度状態1を実施すると
もちろんリモートリポジトリは登録されています。
(何をやっているんだ?!って思う方もいるかと思いますが。。。笑)

つまり、
ローカルリポジトリのブランチごとにリモートリポジトリを認識しているってことです

私は最初、「一度設定したリモートリポジトリがあれば、設定は引き継がれるもの」と思っていたのですが、
よく考えたらそんなわけないですよね。。。笑

■git init と git clone の違いについて

過去の記事では取り上げていませんが、git cloneというものがあります。
git clone は「リモートリポジトリを複製」します。

物は試しで実際にやってみます。
まずは、デスクトップ上に「localrepo5」フォルダを作成し、そこに移動し、フォルダ内を確認します。

f:id:guri2o1667:20200517182127p:plain


普通にフォルダを作成しただけですので、特に変わった様子はないですね。
続いて、当該フォルダ上にてgit cloneを実行してみます。

f:id:guri2o1667:20200517182356p:plain

この時、localrepo5フォルダの中がどうなっているかというと、

f:id:guri2o1667:20200517182708p:plain

こんな感じになっています。localrepo5/repoがローカルリポジトリになっています。
では、localrepo5/repoに移動して、git remoteを実行するとどうなるでしょうか?

答えは、既に登録されています。

f:id:guri2o1667:20200517182847p:plain

つまり、git clone することで
「リモートリポジトリの中身をダウンロード」+「リモートリポジトリの認識済み」となります。
ここがgti init との大きな違いです。

■一度コミットしたファイルを更に更新した場合の動作について

git add にて追加したファイルをgit commit でコミットした後に、
ファイル内容を更新した場合についてです。

現状が以下の時からスタートします。

f:id:guri2o1667:20200517183603p:plain


localrepo-test.txtを修正し、git statusを実行してみます。

f:id:guri2o1667:20200517183715p:plain

ここで重要なのは、「Changes not staged for commit」の部分です。
これは、「当該ファイルがステージングに存在していないこと」を意味しています。

ですので、
git add localrepo-test.txt をして、再度git statusを見てみます。

f:id:guri2o1667:20200517183916p:plain

これで、当該ファイルがステージングまで移動しましたので、
あとはgit commit を実行すればリモートリポジトリへのPUSHが可能となります。

ダラダラと記載しましたが、ここで言いたいのは、
一度ステージングに登録したファイルでも、一度コミットしてしまえば、作業ディレクトリに戻ってしまう」ってことです。
「一度ステージングに登録すれば、今後はgit add 不要だよね」って私は思っていました。。。笑


以上です。