Git Part1 정보

12242 단어 GitGitHub

입문


Git에 대한 조사는 모두 세 번 정리되었다.
섹션 1의 목표는 로컬 저장소와
이것은 원격 저장소를 능숙하게 사용하는 데 사용되는 설명입니다.
이를 바탕으로 이번에는 다음과 같은 두 가지를 설명한다.
1. Git의 구조 이해
2. Git와 GitHub의 협업
참조 사이트 git book
(그림은 본 사이트에서 인용, 양해 바랍니다)

Git 구조


Git 및 SVN


버전 제어 도구는 크게
Git와 SVN 두 가지가 있습니다.
각자에 따라 기재하다.
Git
SVN
분산 버전은 각 PC에서 서버와 동일한 데이터를 관리합니다.
서버에서 중앙 버전 제어 데이터 중앙 집중식 관리
스냅샷 변경 내용이 포함된 파일 자체는 로컬에서 저장하여 이전 버전으로 복구할 수 있습니다
저장 서버에서 차이 관리 기본 버전의 차이 얻기

Git의 세 영역


Git를 이해하기 위해 세 개의 영역이 있습니다.
1. 저장소
2. 보관소
3. 작업 디렉토리

저장소


과거 소스 코드 상태 (스냅샷) 저장 위치
로컬 저장소
원격 저장소 외부 서버의 저장소(예: GitHub)

보관 구역


현재 수정된 파일을 저장소에 등록하려면 변경 사항을 위치에 임시로 저장하십시오.

작업 디렉토리


파일 등, 실제 파일 편집 작업을 위한 디렉터리 변경

Git 워크플로우

  • 작업 디렉토리의 파일을 수정합니다.
  • 수정된 파일의 스냅샷을 임시 영역에 추가합니다.
  • 저장소에 추가된 컨텐츠를 등록(제출)합니다.
  • 1. Git 명령~ 기본~


    git init


    /로컬 저장소 새로 만들기 명령
    Git에서 관리를 시작하는 명령으로 ".git"이라는 디렉토리를 만듭니다.
    이 파일에는git 관리에 관한 모든 파일이 있습니다.
    bash
    $ git init
    Initialized empty Git repository in XXXX.git/
    

    git clone


    • 기존 저장소 로컬 복제(클론) 명령
    이 명령을 수행하면클론에git 폴더가 있는 원격 저장소
    bash
    $ git clone <リモートリポジトリのURL>
    Cloning into '<リモートリポジトリ名>'...
    warning: You appear to have cloned an empty repository.
    

    git status


    • 각 파일의 상태를 확인하는 명령
    파일의 상태는 세 가지입니다.(변경되지 않을 경우 Ummodified)
     1.Git에서 관리되지 않는 새 파일
     2.Git에서 관리되고 수정된 파일
     3.Git 관리 및 git add 파일
    bash
    $ git status
    

    git add


    · 파일을 임시 구역에 추가하는 명령
    bash
    $ git add <ファイル名 or ディレクトリ名>
      git add -A (すべて)
    

    git commit


    · 임시 구역에 추가된 파일을 제출하는 명령
    bash
    $ git commit 
      git commit -m "<メッセージ>"
    
    • 그러나 제출 후 메시지 오류
    또는 제출 내용이 다릅니다.두 번 제출하지 않음
    때로는 제출 기록으로 남겨두고 싶을 때도 있다.(git log를 통해 확인)
    • 댓글만 수정하려는 경우
    bash
    $ git commit 
      git commit -amend
     エディタが開くので、コミットメッセージを修正。
     上書き保存して、ファイルを閉じる。
    
    · 파일을 수정할 때
    먼저 파일을 편집합니다.
    bash
    $ git add -A
      git commit -amend
     エディタが開くので、コミットメッセージを修正。
     上書き保存して、ファイルを閉じる。
    

    Git 명령~변경 취소~


    git checkout


    ・ 작업 디렉토리의 변경 내용 취소
    bash
    $ git checkout <ファイル名 or ディレクトリ名> 
    $ git checkout .(すべて)
    

    git reset


    ·이전 영역에 대한 변경 내용 취소
    (git add의 취소)
    bash
    $ git reset HEAD <ファイル名 or ディレクトリ名>
    $ git reset HEAD
    $ git reset 
    
    ※指定した変更をステージングエリアから除外するのみ。
     ワークディレクトリ内のファイルが書き換わるのではない。
    ※git reset と git reset HEAD は同義
    
    • 변경 내용 커밋 취소
    (git commit의 취소)
    bash
    $ git reset HEAD^ 
    

    제목


    현재 체크 아웃된 브랜치의 시작을 나타냅니다.
    이게 이해가 되게 쉬워요.
    ( https://qiita.com/chihiro/items/d551c14cb9764454e0b9 )

    2. Git 명령~ GitHub와의 협업~


    origin과 master

  • origin: 저장소(URL) 별칭
  • master: 분기 이름
  • 기본적으로 origin과 master의 이름은
    원격 저장소 생성 시 기본값

    git remote


    • 원격 저장소 추가 이름 지정
    bash
    ・リモート名という名でgitリポジトリを登録
    $ git remote add <リモート名> <gitリポジトリ>
    
    Ex.
    $ git remote add origin https://github.com/XXXX.git
    
    ・リモートリポジトリを削除する
    $ git remote rm <リモート名>
    
    Ex.
    $ git remote rm origin
    
    ・リモートリポジトリの一覧を表示する
    $ git remote
    origin
    
    ・リモートリポジトリの一覧をURL付きで表示する
    $ git remote -v
    origin  https://github.com/XXXX.git (fetch)
    origin  https://github.com/XXXX.git (push)
    
    ・リモートリポジトリの情報を取得する
    $ git remote show <リモート名>
    
    ・リモートリポジトリの名前を変更する
    $ git remote rename <旧リモート名> <新リモート名>
    

    git push


    • 로컬 저장소의 컨텐츠를 원격 저장소에 반영
    bash
    ・リモート名という名でブランチに送信
    $ git push <リモート名> <ブランチ名>
    
    Ex.
    $ git push origin master
    
    ・次回からgit pushだけで済むようにする
    $ git push -u <リモート名> <ブランチ名>
    

    git fetch


    • 로컬 저장소로 정보 검색
    bash
    ・リモート名という名でブランチに送信
    $ git fetch <リモート名/ブランチ名>
    
    Ex.
    $ git fetch origin master
    

    git merge


    • 로컬 저장소 정보를 작업 디렉토리에 반영
    bash
    $ git merge <リモート名/ブランチ名>
    
    Ex.
    $ git merge origin/master
    

    git pull


    ・ 로컬 저장소로 정보를 검색하는 동안
    작업 디렉토리에 반영
    bash
    ・リモート名という名でブランチ & ワークディレクトリに送信
    $ git pull <リモート名> <ブランチ名>
    
    Ex.
    $ git pull origin master
    
    ・上記と同じコマンド
    1. $ git fetch <リモート名> <ブランチ名>
    2. $ git merge <リモート名> <ブランチ名>
    

    3. Git 명령~ 편리한 명령~


    git diff


    ・ 파일 차이를 확인하는 명령
    bash
    ・ワークディレクトリとステージングエリアの比較
    $ git diff
      git diff <ファイル名>
    
    ・ステージングエリアとリポジトリの比較
    $ git diff --staged 
      git diff --staged <ファイル名>
    

    git rm


    파일 삭제 명령
    bash
    ・リポジトリ、ワークディレクトリの両方にある内容を消す
    $ git rm <ファイル名>
     git rm -r <ディレクトリ名>
    
    ・リポジトリの内容のみ消し、ワークディレクトリを残す
    $ git rm --cached <ファイル名>
    

    git log


    • 제출 내역 확인
    확인 완료 후 Q 키로 종료
    bash
    ・すべてのコミット履歴を見る
    $ git log 
    
    ・すべてのコミット履歴を1行ずつのコミット履歴で見る
    $ git log --oneline
    
    ・最新の変更からx個前のコミット履歴を見る
    $ git log -n x
    

    git mv


    파일 이름 바꾸기
    bash
    ・ファイル名の変更
    $ git mv <旧ファイル> <新ファイル>
    
    ・上記と同じコマンド
    $ mv <旧ファイル> <新ファイル>
    $ git rm <旧ファイル>
    $ git add <新ファイル>
    

    git config


    ・config 폴더에 저장된 정보 설정
    bash
    ・リモート名という名でブランチに送信
    $ git config --global <設定項目> "内容"
    
    Ex.
    $ git config --global user.name "Miyasako"
    
    ・すべての設定を確認する
    $ git config --list
    

    .gitignore 파일


    · 파일이 있는 위치를 루트 디렉터리로
    git 관리에서 지정한 파일을 제외합니다
    gitignore
    ・ディレクトリを問わず、sample.txtを除外
    sample.txt
    
    # .gitignoreが置かれたディレクトリ内のsample.txtを除外
    /sample.txt
    
    상세한 상황은 아래와 같이 이해하기 쉽다.( http://www-creators.com/archives/1662 )

    4. Git와 GitHub의 협력


    GitHub와 Git의 합작 방법은 다음과 같다.

    1. GitHub에 저장소 만들기

  • GitHub 로그인
  • "새 자료 파일 라이브러리"단추 누르기
  • 자료 파일 라이브러리 이름 입력
  • 공개/비공개, 개요 입력
  • "Repository 만들기"에서 완료
  • 2. GitHub 저장소 복제

  • 객체의 로컬 폴더git init 또는 git clone.
  • 3. 로컬 편집 내용을 GitHub에 업로드

  • 로컬 파일 편집
  • 명령 실행git add -A
  • 명령 실행git commit
  • 명령 실행git remote add origin <リポジトリのURL>
  • 5. 명령 실행git push origin master
  • 추가:git 데이터 보유 방법


    ·gitcommit 때 만든 대상은 3개입니다.
    1.blob 객체
    2. 트리 객체
    3. 객체 제출
    ・ 3개의 파일이 포함된 카탈로그를 제출할 때

    • 변경된 제출 트리(최근 제출 포인터)

    블록 객체


    · 파일 내용의 대상을 압축했다.
    만약gitadd가 저장 영역에 가면,add 후의 파일이 압축되어blob 대상이 됩니다.
    ".git/objects"아래에 저장
    · SHA-1 산열의 산열 값을 계산하고 작성하기 위해 같은 내용의 파일이 같은 산열 값이 됩니다.
    bash
    $ git cat-file -p master^{tree}
    100644 blob 1c2e6eb9317f1786bb60b1a20d941fa725bb7523    sample.txt
    100644 blob 2a412606369d7a1b3eb5c53514ba3f5de3a02602    sample_github.txt
    

    트리 객체


    · 디렉터리 내용의 일람과 파일이 어떤blob의 대상에 대응하는지 나타낸다
    다음 그림에서 보듯이 트리 대상은 "blob 대상"과 "트리 대상"이다
    저장, 디렉터리 층마다 트리 파일 만들기

    bash
    $ git cat-file -p master^{tree}
    040000 tree b660134185b180a6827424797a8a3526fc770944    new_folder
    100644 blob a3ff572543d64d658e113922453473906b19a8c1    sample.txt
    100644 blob 2a412606369d7a1b3eb5c53514ba3f5de3a02602    sample_github.txt
    
    $ git cat-file -p b660134185b180a6827424797a8a3526fc770944
    100644 blob a3ff572543d64d658e113922453473906b19a8c1    sample2.txt
    

    객체 제출


    · 제출할 때의 메타데이터를 포함한다.
    메타데이터의 내용은 다음과 같다.
  • 최상위 트리 대상(tree)
  • 이전 제출
  • 저자user.name/user.email
  • 전원user.name/user.email
  • 공행
  • 이전 제출 메시지
  • bash
    $ git cat-file -p HEAD
    tree c1003506f3efc11d16f0c9ab6f7e63f30ae88756
    parent 66f83c3b6ca576467c6a3d0578c7f5320663c4b7
    author ShoheiMiyasako <[email protected]> 1565766982 +0900
    committer ShoheiMiyasako <[email protected]> 1565766982 +0900
    
    フォルダを作成
    
    ・さらに1つ前のコミットオブジェクト
    $ git cat-file -p 66f83c
    tree 979925e5852c4980b4c8e93193fff43bf7a87b43
    parent 0a702cdea8f9ea002c5ea03d296abfb57258c4e7
    parent 3e70f7465f6c3c5fed053495c2708fd17cbd4319
    author ShoheiMiyasako <[email protected]> 1565745981 +0900
    committer ShoheiMiyasako <[email protected]> 1565745981 +0900
    
    Merge remote-tracking branch 'origin/master'
    

    끝내다


    내 총결산을 참고할 수 있다면 다행이다.
    여기서 마치겠습니다.

    좋은 웹페이지 즐겨찾기