41日目コード状態[Git(ブランチ管理と高度機能)]


今週はHAが今まで学んだことを試験する時間があるので
今日中に基本的に私が学んだ理論内容を全部整理するつもりです.
明日はクローンコードでcssとreactを再試行します.
翌日、HAの準備のためのスプレーをブラウズします.
まだ
  • 時間残っている場合は、クローンコードや個人学習も行われる可能性があります.
  • がんばって

    Git Branch


    Gitは開発者の協力に必要なツールであることはよく知られています.
    開発者は、開発時に同じソースコードを共有し、処理します.
  • と同じコード内でエラーを修正したり、新しい機能を作成したりします.
  • ただし,同じコードを用いるため,時間が経つにつれて異なるバージョンのコードしか生成できない.
    それを補うために
  • があるそうです.
  • ブランチ(Branch)


    独立してある仕事をするための概念です.
    開発の過程で、1ページの複数の機能を単独で実現するためには、コードを複数にコピーする必要があることが多い.
  • しかし、ブランチの機能を利用して、元のコードの変更を心配することなく、コードを完全にコピーした後に独立して開発することができます.
    すなわち,各ブランチは他のブランチの影響を受けない.
    브랜치의 장점
    1. 한 소스코드에서 동시에 다양한 작업을 할 수 있게 해준다.
    2. 소스코드의 한 시점과 동일한 상태를 만들고 브랜치를 넘나들며 작업 가능
    3. 각각의 브랜치는 독립적으로 존재한다.
    githubのファイルを見ると、Main、Masterというブランチが見えます.
    これらの連結ブランチをベースとし、他のブランチをベースとします.
  • hotfix、release、developmentなど
  • で、それぞれ必要な作業を行います.
  • これらの分離されたブランチでは、各ブランチには独立したワークスペースがあり、自分の好みに応じてコードを変更することができます.
  • 完了したら、マージをマージして新しいブランチに再マージできます.
    複数人で働く場合を例に説明する.
    main이라는 브랜치에 우리가 작업을 소스코드를 둔다.
    
    A는 hotfix라는 브랜치에 소스코드를 복사한뒤 작업을 하고
    B는 develop라는 브랜치에 소스코드를 복사한뒤 작업을 하게 된다.
    
    이후의 사람들도 각자 브랜치를 하나 담당하여 작업을 진행한다.
    
    만약 일정 시간이 지나고 우리가 특정 작업을 마무리 해서 병합을 해야 하는 시기가 온다면
    
    브랜치에 있는 코드를 하나하나 병합을 한뒤 테스트후 main이라는 통합 브랜치에 저장을 한다.
    レンチの種類を説明したら
    통합 브랜치
    - 배포될 소스코드가 기록 되어 있는 브랜치
    - 기본적으로 main브랜치가 해당이 된다(master인 경우도 잇다.)
    
    피처 브랜치
    - 각자 개인 또는 팀이 맡아서 작업할 브랜치를 말한다.
    - 통합 브랜치에 있는 코드를 복사하여 만들어 지며 후에 병합에 사용 된다.

    ブランチ命令セット

    git branch 새로운 브렌치 이름
    - 새로운 브랜치를 생성한다.
    
    git branch
    - 브랜치 목롱을 확인
    
    git branch - v
    - 브랜치 목록과 각 브랜치의 최근 커밋을 확인
    
    git checkout 브랜치 이름
    - 브랜치 전환
    
    git checkout -c 브랜치 이름
    - 새로운 브랜치를 생성후 해당 브랜치로 전환
    - 즉 생성과 브랜치 이동을 동시에 한다.
    
    브랜치 병합( master브랜치로 dev브랜치를 병합할떄)
    1. git checkout master
    2. git merge dev
    
    git stash
    - 아직 커밋을 하지 않은 작업을 스택에 임시 저장

    プロジェクトワークフロー


    基本的には,開発の過程でmainではなくdevというブランチを作成して作業することが多い.
  • 브랜치(Branch)
  • 後でコードをフォークに入れるからです.
  • git checkout -b dev
  • 後でログイン機能を実装したい場合は、
  • git push origin devそして同じボタンを押せばいい
  • その後、ログイン機能が実装され、その後、ソーシャルログインが行われ、ソースコードに触れるため、新しいブランチの作成がリスクをもたらすと仮定します.
  • git checkout -b feature/loginそして同じ
  • を押して
    また、すべての機能実装が完了しているので、統合する必要があります.
    そのためには,まずマージ主体となるブランチに移動する.
  • git checkout -b feature/login-oauth
  • このように移動してマージします.
  • git checkout feature/login
  • 이떄 한가지 알아 두어야 하는 점이 login브랜치에 추가 커밋이 있다 없다로 방식이 달라지는 점이다.
    
    만약 login에서 oauth로 코드를 복사 한후에도 login의 소스코드에 변환가 있었다면 merge commit방식으로 병합이 되며
    
    만약 login의 소스코드에 변화가 없엇다면
    fast-forward방식으로 병합이 이루어 진다.
    
    이것을 따른 말로는 rebase와 merge의 차이라고도 한다

    面接の主な問題の一つ!!

    merge와 rebase의 차이점에 대한 내용이다.
    
    rebase의 원리는 앞서 말한 fast-forward와 같다.
    
    merge같은 경우에는 변경 내용의 이력이 모두 그대로 남아 있기 떄문에 이력이 복잡해 지지만
    
    rebase는 말 그대로 branch base를 이동 시킨다는 뜻으로 브랜치 통합을 목적으로 하지만 특정 시점으로 브랜치가 가리키는 곳을 변경하는 기능을 뜻한다.
    
    만약 git rebase main feature/login이라는 명령어를 사용 하게 되면
    main의 가장 최신 커밋으로 브랜치가 변경이 된다.
    その後、すべての作業が完了するとpushが行われ、devブランチに反映されます.
  • このセクションはgithubのpullリクエストを承認することによって完了することができる.

  • これは
  • 以前の文字説明部分の全体的なフローチャートである.
  • rebaseの詳細について


    個人的にはrebaseコマンドがよく分からないのでgooglingで追加学習しました.
    リンク:https://flyingsquirrel.medium.com/git-rebase-方法-ce 6816 fa 859 d
    まず、aとbというブランチを特定のブランチで統合してみましょう.
    2つの選択肢があります.(merge, rebase)
    mergeのように、bというブランチでコミットされたすべての内容は、aというブランチに記録されます.
  • すなわち、レコードは共有されているとみなされ、
  • .
    ただし、rebaseコマンドはaというブランチのコミットに追加されますが、bでコミットされた不要な内容は含まれません.
  • は共有を記録するが、不要なレコード
  • を共有しない.
    不要な記録は私が録画したときに削除すればいいです.
    提出は3つくらい残したと思います.
    その後、すべての作業が完了してOriginにプッシュされる前に、不要なコミットを再設定し、整理されたコミットのみOriginに渡します.git merge feature/login-oauth
  • は最近の3ヶ月の提出を再起草するように命令した.
  • 이렇게 3가지의 커밋 활동이 뜨게 된다.
    
    pick f7f3f6d fix typo
    pick 310154e wip
    pick a5f4a0d bugfix
    
    이 3가지의 커밋 활동중 우리는 bugfix부분의 커밋만 넘겨 주려고 한다면
    
    s f7f3f6d fix typo
    s 310154e wip
    pick a5f4a0d bugfix
    
    이렇게 pick을 s라는 명령어로 삭제 시켜 주면 된다.
    そして別のviが現れます.
    # This is a combination of 3 commits.
    # The first commit's message is:
    fix typo
    
    # This is the 2nd commit message:
    
    wip
    
    # This is the 3rd commit message:
    
    bugfix
    
    이러한 vi에서는 dd를 눌러서 원하지 않는 내용을 삭제 시켜 주어야 한다.
    - bugfix만 남기고 싶기 떄문에 bugfix를 제외한 모든 사항을 dd 시켜 삭제 해준다.
    それでは完成です
    このように再認識した後、本当に再定義された意味のようです.
    rebaseで注意したいのは、他の人と一緒に使うブランチでは、Git pushではrebaseを使わないほうがいいということです.
  • は他の人が引っ張ると大きな衝突に遭遇するそうです.
  • だからきれいに片付けよう