사내 깃 학습회

7127 단어 Git

본 학습회의 목적


Giit를 잘 몰라요.

Giit 앞머리 주름
Giit 문서를 읽는 발판입니다.

오늘의 내용

  • 상태
  • 분기
  • HEAD
  • origin
  • git명령과의 교제방법
  • 추가 Tips(git stash)
  • Git의 탄생


    탄생의 계기


    Linux 커널을 개발하려면 새로운 VCC가 필요합니다.

    세 영역과 각 영역의 상태 이해

  • Working Directory)
  • 제본 구역
  • .git 카탈로그(Repository)
  • 작업 디렉토리

  • 파일을 실제로 추가하고 수정할 때의 영역입니다.파일은untracked/tracked의 상태입니다.
  • 트랙드의 경우modified/unmodified 상태를 취한다.
  • 별칭 작업 트리
  • 정착 구역

  • git add는 여기에 배치된다.
  • git commit일 때 이 디버그 영역에 있는 파일이 대상이 됩니다.
  • 도 별칭 색인으로 사용할 수 있습니다.
  • 이 구역에 추가하면 레벨 상태(staged/unstaged)
  • .git 디렉토리(Repository)

  • 프로젝트에 사용할 메타데이터 등을 저장한다.
  • git commit 이 정보를 여기에 저장합니다.
  • 영역에 추가하면 커밋됨

  • 분기


    분기 전... git의commiit는?
    Git는 데이터가 미니 파일 시스템의 캡처 집합이라고 생각한다.Giit에서 모든 제출(번역문:commiit는 변경된 Giit를 기록하고 저장하는 작업을 말합니다.자세한 내용은 뒷장을 참조하십시오) 또는 프로젝트 상태를 저장할 때 Giit는 기본적으로 당시의 모든 파일 상태의 스냅샷을 촬영합니다.이 캡처에 대한 인용을 저장합니다.효율성을 높이기 위해 파일이 변경되지 않으면 Git는 파일을 다시 저장하지 않고 이미 저장된 이전의 같은 파일에 대한 링크로 저장합니다.Git는 차라리 데이터를 일련의 스냅숏으로 삼는 것이 낫다.
    분기란?
    분기는 어느 순간의 제출을 나타내는 지침이다.

    브랜치 유형

  • 원격 분기
  • 로컬 분기
  • 원격 추적 브랜치
  • 로컬 추적 브랜치
  • (일반) 로컬 브랜치
  • 원격 분기


    원격 창고의 지점

  • 원거리에 있어서 평소에 이거 안 건드려요.
  • 우리는 push/fetch를 통해서만 조작할 수 있다.
  • 로컬 분기


    (일반) 로컬 분기

    $ git checkout foo master
    
  • 다른 로컬 분기를 구별하기 위해'정상'
  • 다음에 소개할 두 개의 로컬 지점 특성이 없는 지점
  • 원격 추적 분기


  • 로컬 생성
  • 최초의 clone이나fetch의 도, 원격 지점의 상태를 저장합니다.
  • 원격 분기의 상태를 알아보기 위해 로컬 원격 추적 분기를 참조합니다.(원격 분기에 연결)
  • remotes/<remote>/<branch>라는 이름으로 제작되었습니다.(생략 형식은 <remote>/<branch>
  • 분기 커밋 불가능
  • 로컬 추적 브랜치

  • 로컬 생성
  • 원격 분기에 커밋된 분기를 전송하는 데 사용됩니다.
  • 일반적인 로컬 분기와 기본적으로 같지만 유일한 차이점은 원격 추적 분기와의 연결입니다.
  • 분기에 제출 가능
  • 로컬 추적 지점의 제작 방법을 통해 원격 추적 지점과 관련이 있음을 알 수 있다.
    $ git checkout -b <local_branch>  <remote>/<branch>
    
  • 이미 옆에 있는 로컬 지점을 원격 지점의 목적지로 설정하고 싶을 때git branch -u <remote>/<branch>
  • HEAD  ?

  • HEAD는 작업 중인 분기를 나타내는 포인터

  • HEAD가 가리키는 분기는 git checkout <branch>에서 변경됩니다.
  • $ git checkout master
    
    $ git checkout testing
    
    $ git commit # 87ab2
    $ git checkout master
    
  • 현재 지점의 최신 제출.
  • 현재 작업이 필요한 개정 SHA-1 해싱에 HEAD를 사용합니다.
  • 매개변수가 지정되지 않은 경우 기본값
  • 도 상대적으로 지정할 수 있다.
  • HEAD의 앨리스@로 사용 가능
  • $ git show HEAD    # 現在の最新コミット
    $ git show HEAD^   # 現在の最新コミットの1つ前
    $ git show HEAD~   # 現在の最新コミットの1つ前
    $ git show HEAD^1  # 現在の最新コミットの1つ前
    $ git show HEAD~1  # 現在の最新コミットの1つ前
    
    $ git show HEAD^^^ # 現在の最新コミットの3つ前
    $ git show HEAD~~~ # 現在の最新コミットの3つ前
    $ git show HEAD~3  # 現在の最新コミットの3つ前
    
    위에서 설명한 대로 ^ 또는 ~는 상대적으로 지정할 수 있습니다.
    단, ^数字를 입력한 경우(예를 들어HEAD^2 주의해야 한다.HEAD가 병합 제출이고 부모가 두 개일 때HEAD^数値는 부모 제출을 지정하는 데 사용된다.~ 합병 제출에서 항상 첫 번째 아버지를 참고한다.
    $ git show HEAD^2~2 # 2番目の親の2つ前
    

    오리진이란?

  • 원격 창고git clone에서 기본값으로 명명된 이름입니다.읽기와 쓰기가 있습니다.
  • 도 이름을 바꿀 수 있습니다.
  • git remote -v를 통해 확인할 수 있습니다.
  • 여러 개의 원격 창고도 등록할 수 있다.
  • 이미지
  • , 예를 들어 원격 정보를 참고하는 변수 이름이지 특수한 의미를 가진 이미지가 아니다.
    $ git push  origin     master
    #           <リモート先>  <ブランチ名>
    

    git 지령과의 교류 방법


    지령+옵션과 열쇠 치기가 어렵다는 것을 기억하고 앨리스를 활용하자.
    $ vim ~/.gitconfig
    
    예컨대git add의 취소, git reset HEAD 기억하기 어렵다고 생각하면
    git unstage <filename>
    
    git commit -m길다고 생각하면
    git save <message>
    
    git branch 많은 정보를 자주 보고 싶다면-a-vv
    git branches
    
    Git 클라이언트를 이용하거나(sourcetree, totoise, tig...)

    Tips


    주머니에서 잠시 Stash 작업을 피하다


    사용 여부:
    어떤 직장에서 우선도가 높은 일자리가 배정됐지만, 현재 일자리는 제출할 수도 없고, 폐기할 생각도 없는 상황이다.git stash 현재의 일을 잠시 피할 수 있다.
  • 제본 영역 및 작업 디렉토리의 현재 상태 저장
  • 작업 디렉토리 재설정
  • $ git stash save <任意の名前(省略可)>
    # 注意点として untrackedなファイルは対象とならないので先に`git add -A`をしておくのがおすすめ。
    
    마지막으로 제출한 시간을 되돌려줍니다.
    다음에 임시로 저장된 내용을 확인할 수 있습니다.
    $ git stash list
    
    여기서는 지점을 잘라서 높은 우선순위의 대응을 한다.
    제출한 후 원래의 지점으로 돌아가 다음 명령에 저장된 내용을 복원합니다.목록에서 제거
    $ git stash pop
    
    참고 자료
  • https://git-scm.com/book/ja/v2
  • Git에서 어려움에 처했을 때 읽은 책
  • 좋은 웹페이지 즐겨찾기