★ Git ★


初めてGitに触れた時、難しいと感じて、複雑で、すべてのものを一気に受け入れるのは難しいです.そこで、まず整理して、それから繰り返し勉強して、ゆっくり慣れていくべきだと思いますので、単独で整理した文章を書くことにしました!

どうしてGitを勉強するの?


  • 効果的なコラボレーション

  • 開発とテストが容易

  • 導入管理とソース統合または競合管理のシンプル化
  • Gitとは?


    Gitの正式名称は分散バージョン管理システム(VCS)である.
    (ちなみに、ここのバージョンはプログラム内の変更を指し、Gitはプログラムの変更履歴を管理することができます.)
    簡単に言えば、プロジェクトファイルの変更を追跡するシステムです.これにより、開発者はプロジェクトの変更を記録し、特定の時点のバージョンにいつでも戻ることができます.このバージョン管理システムは、多くの人が効率的に協力し、プロジェクト中心の協力で使用することができます.各開発者は、独自のプロジェクトバージョンを所有します.すなわち、後でこれらの個別バージョンのプロジェクトを統合し、標準としてのプロジェクトバージョンに適用することができる.
    Gitは個人やチームプロジェクトを管理するのに最もよく使われるツールです.
    そのため,すべての開発者にとってGitを習得することが最も重要な技術の一つであることは否めない事実となっているようである.

    Repository(リポジトリ)


    Gitを使うときは、repositoryという用語を熟知しているはずです.Git repositoryは、Gitで管理されるプロジェクトリポジトリ、すなわちプロジェクトフォルダである.
    リポジトリのタイプは次のとおりです.

  • ローカルストレージ(パーソナルストレージ):私のPCに保存され、私たち自身が管理します.

  • ≪リモート・ストレージ|Remote Storage|emdw≫:リモート・サーバに格納されているリポジトリは、チームで作業するときに特に役立ちます.ここでプロジェクトコードを共有したり、他の人のコードを表示したりすることができます.また、ローカルバージョンのプロジェクトとマージして変更を適用できます.
  • 通常、ローカルで作成してリモートにアップロードするか、ローカルでダウンロードしてリモートで生成されたレコードを生成します.

    Commit


    簡単に言えば、提出とは、プロジェクトの変更履歴を指す.
    プロジェクトの現在のステータスを示すチェックポイントまたはスナップショットと見なすことができます.
    簡単に言えば、現在のバージョンのコードはコミットに保存されていると考えられます.
    コミット履歴の必要に応じてコミットを生成し、コミット間を前後に移動してプロジェクトコードの他の変更を表示できます.これにより、プロジェクトの進捗状況をより効果的に管理できます.
    通常、コミットの残り時間は、特定のコンテンツ、機能、または変更を適用した程度であってもよい.단 코드를 커밋하려면 우선 코드를 taging area 에 추가해야 한다.

    Branch


    分岐は独立してある仕事を行う概念である.必要に応じて作成される各ブランチは、他のブランチの影響を受けないため、複数の操作を同時に行うことができます.
    複数の人が同時に作業するときに他の人の作業に影響を与えたり影響を与えたりしないように、まずメインブランチに自分の作業専用ブランチを作成します.その後、それぞれの作業が完了すると、作業を完了した人は自分のブランチの変更をメインブランチに適用します.
    これにより、他人の仕事の影響を受けずに、独立して特定の仕事を実行し、結果を集中させることができます.このようにして作業すると、「作業単位」(すなわち分岐)の作業記録が中間に残るため、問題が発生すると、作業の原因を特定したり、対応策を講じたりすることが容易になります.
    初めてリポジトリを作成すると、Gitは「master」というブランチを作成します.新しいファイルを新しいリポジトリに追加するか、追加ファイルの内容を変更して保存(コミット、Commit)することで、「マスター」というブランチで処理できます.
    「マスター」ではなく、もう一つの新しいブランチで、「これからこのブランチを使います!」宣言(決済、決済)しない限り、この時点のすべてのタスクはmasterブランチで完了します.
    また、新しいブランチが作成されても、既存のプライマリブランチは存在します.

    Checkout


    現在位置のコミットから別のコミットに移動することをチェックアウトと呼びます.チェックアウトすると、現在のコミットから同じブランチ内の別のコミットに移動するか、別のブランチ内のコミットに移動できます.要するに、以前のバージョンに戻るか、他の人のブランチに切り替えて、他の開発者のコードの進捗状況を表示することができます.

    Merge


    マージとは、分割されたブランチを1つのブランチに再マージすることです.
    Aというブランチで動作するコンテンツをBというブランチに適用したい場合は、ブランチAとブランチBをマージできます.たとえば、特定のブランチで新しい機能を完全に実装し、テストを完了した場合は、mergeを使用して、実装内容を基準とするプライマリブランチに適用します.
    これは最も間違いやすい過程で、注意しなければなりません.
    連結プロセスで、現在のブランチを連結ブランチの既存のプライマリブランチに変換します.
    修正したブランチをマージしてこそ、エラーは発生しません.複数のブランチを同時にマージすると、既存のブランチの状態で順次マージされます.

    Clone


    クローンとは、リモート・リポジトリから特定のアイテムをローカル・リポジトリにダウンロードすることです.他の開発者の共通リポジトリからクローンを作成することもできます.

    Push


    Pushとは、現在ローカルで動作している変更をリモート・リポジトリに反映することです.タスクが完了するたびに、他の人が私のコードを表示できるように、リモート・リポジトリにプッシュします.

    Pull


    プールとは、リモート・リポジトリの変更をローカル・リポジトリに反映することです.Pushとは反対の概念は、他の人がPushを通じてコードをリモート・リポジトリに更新すると、このコードをPushしてローカル・コードを更新し、既存のコードが私のコードと異なる場合、Mergeを行ってコードをマージすることです.
    Cloneはコンセプトと混同される可能性があります.Cloneはプロジェクトを最初にロードしたときにプロジェクト全体をダウンロードしますが、Pullはそのプロジェクトで変更された事項だけをダウンロードすることを指します.

    Gitコマンドバー

    $ git init - 현재 디렉토리를 git local repository[Working Directory]로 지정(생성)
    $ git status - git 상태확인
    $ git add - 파일 수정 이력 기록 준비
    $ git commit - 파일 수정 이력 기록
    $ git commit -m "Commit message"-  식별을 위한 커밋 메세지 작성(레포지토리에커밋남기기)
    $ git show <commit> - 커밋의 상세내용 확인
    $ git log - commit 이력 보기 
    $ git add . - staging area 로 모든 파일 한번에 추가(프로젝트 폴더 내의 모든파일과 폴더를 staging area 에 추가하고 커밋을 남길 수 있게해줌)
    $ git add file.py - 특정 파일만 추가
    $ git add file.py file2.py file3. py - 여러개의 파일 추가
    $ git diff - 파일의 변경 내용 확인
    $ git rm <file>- 파일 삭제
    $ git clone <url> - 기존의 원격 저장소 복제
    $ git branch <new-branch-name> - 새로운 브랜치 생성
    $ git checkout <branch-name> - 브랜치 전환, 위치 이동
    $ git branch -r : 원격 브랜치 목록보기
    $ git branch -a : 로컬 브랜치 목록보기
    $ git remote add <name> <url> - 원격 저장소 추가
    $ git remote  - 원격 저장소 목록 확인 (-v 옵션을 붙히면 상세정보 표시)
    $ git remote add origin (원격 저장소 github URL) - 원격 저장소 연결(github)
    $ git branch - 프로젝트에 존재하는 모든 브랜치 확인(현재 속한 브랜치는 앞에 *가 붙음)
    $ git branch -M  main - main으로 브랜치 명 변경
    $ git push origin main - origin이라는 원격저장소의 main 브랜치에 푸쉬
    $ git pull - 다른 사람이 원격 저장소(Remote repository)에 업데이트한 파일이 있을 때, 원격저장소와 내 로컬저장소의 상태를 동일하게 만들기
    $ git merge <branch-name> - 브랜치 병합하기
    $ git branch -d <branch-name> - 브랜치 삭제하기 (조심해서 사용요망)
    $ git remote - git 원격저장소[Repository] 목록 확인
    $ git push - 원격저장소[Repository]local repository[Working Directory]의 commit 내용을 올림
    . Reference
    https://ko.wikipedia.org/wiki/%EA%B9%83_(%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4)
    https://namu.wiki/w/Git
    https://mi2mic.tistory.com/186
    https://backlog.com/git-tutorial/kr/reference/basic.html