2024年4月26日金曜日

実用Git第3版 備忘録5 リモートリポジトリ

 P258 git init -b main fluff  開発(ノンベア)リポジトリの作成

            git init --bare -b main fluff-bare  ベアリポジトリの作成(権威ある参照箇所)

--bareオプションを指定してgit cloneを実行すると、ベアリポジトリが作られる

P261 リモートの作成  git remote           .git/configにリモートがある git configで操作

P263 リポジトリのブランチの分類: リモート追跡ブランチ(リモートリポジトリの追跡が目的)、ローカル追跡ブランチ(開発ブランチとリモート追跡ブランチの変更の両方を集める)、トピックブランチ(開発ブランチ)、リモートブランチ(リモートリポジトリにある)

git branch -a
 main         ローカル追跡ブランチ
 mylocal-branch    トピックランチ(開発ブランチ)
remotes/origin/main     リモート追跡ブランチ

P264  リモートは URLとrefspec(refの対応づけを示す)の2つからなる
      refspecの例: +refs/heads/*:refs/remotes/remote/*   (fetchで利用)

P274 git push origin main   

P277 git branch -a
        *main                                                      ローカル追跡ブランチ
          remotes/origin/HEAD -> orign/main  リモートがアクティブなブランチだと考えているブランチをシンボル名で示す
          remotes/origin/main         リモート追跡ブランチ

P280  git pull は、git fetchのあと、git merge(or rebase)

P284 図で見るリモートリポジトリ開発サイクル
      
   オリジナルリポジトリ    AーB ←main       
                        ↓origin/main ①              
   クローンリポジトリ        AーB ←main ③ ④         

①オリジナルリポジトリのmainブランチはクローンのorigin/mainという新しいリモート追跡ブランチに導入される
②新しいクローンレポジトリのなかで、origin/mainブランチはmain(オリジナルの?)のHEADコミットを参照するように初期化される。ここではBを参照。
③クローン内にmain(ローカル追跡ブランチ)が作られる。
④mainブランチは、オリジナルレポジトリのアクティブブランチのHEADであるorigin/HEADを参照するように初期化される。(Bを参照)
 クローン後、カレントブランチとしてmainブランチを選び、チェックアウト

クローンで、X,Yをコミットすると
   オリジナルリポジトリ       AーB ←main         
                      ↓origin/main   
   クローンリポジトリ        AーBーXーY ←main 

オリジナルで、C,Dをコミットすると
   オリジナルリポジトリ       AーBーCーD ←main         
                      ↓origin/main   
   クローンリポジトリ        AーBーXーY ←main 
 この状態を 履歴が分岐 あるいは フォーク したという

自分の履歴をプッシュしようとするとき、 rejectされる
 (git push -f で強制的に上書きもできるが)
プッシュの前に 自分のリポジトリでマージが必要
 git fetchで、オリジナルを取り込む        
                      CーD ←origin/main  
                      | 
   クローンリポジトリ        AーBーXーY ←main 
あとは mainブランチに origin/mainブランチをマージすると両者を統合できる
   git merge orign/main
コンフリクトが起きたら git reset --hard ORIG_HEADでYにもどることも可

マージ出来たら git push
                        C ー D   
                       |    |
   オリジナルリポジトリ        AーBーXーYーM ←main 

                       C ー D   
                      |    |
   クローンリポジトリ        AーBーXーYーM ←main 
                           ↑origin/main


0 件のコメント:

コメントを投稿