Git 명령어와 브랜치

업데이트:
3 분 소요

리누스 토발즈

1) 리눅스의 창시자
    - 1991년 취미로 개발
2) Git의 창시자

alt

Git

1.리눅스 프로젝트에서 사용하던 Bitkeeper가 상용화 (2주만에)

1) 2005년 Git 탄생

2) 커뮤니케이션

3) VCS ( Version Control System ), DVCS ( Dostributed Version Control System )

    - 데이터의 과거와 현재 상태 관리하는 것
    - 복수의 사람들이 사용하는 것임

4) 동시 다발적인 브랜치 작업

5) 대중성, 검증된 안정성

6) 왜? 쓰냐?

   - 협업 

7) 협업 시 서로 간에 상태를 똑같게 유지하는 기능

GitHub

1) Git 기반

2) 프로젝트 호스팅 사이트

3) 2008년 2월 서비스 시작

Bash 명령어

  • git config –list (목록)

  • git config –global user.name   user.email 이름이나 이메일 지정
  • pwd 위치!
  • cd.. 상위
  • ls 리스트
  • clear 깨끗하게하기
  • vim HelloWorld!.java –> java파일 하나생김
    • 나갈때는 insert-> i :wq 누르면 저장됨
  • ls -a 상위폴더 안나타나고 현재 파일만 보임
  • ls -al 시간까지

  • cat Helloworld.java - 파일 내용 보여줌

Git 장점

1) 이력 기록 및 추적

2) 원격 저장소 및 공유

3) 변경 이력 병합

기본 명령어

1) 저장소(Repository) 생성

    - git init
        - 실행한 위치 Git 저장소로 초기화

2) vim

    - 리눅스, UNIX 에서 사용할 수 있는 텍스트 편집기
    - i 키 누름
        - 일반 모드 -> 입력 모드 전환됨.
    - Esc 키 누름   
        - 입력 모드 => 일반 모드 전환됨.
    - : 키 누름 
        - 명령 모드 전환됨( 명령어 입력 가능)
            - wq (저장, 종료) 

3) 저장소 상태 확인

    -git status                             

4) 저장소에 파일 추가

    - git add 파일 이름
        - 해당 파일 Git이 추적할 수 있게 추가함.
        - 파일 기록 추적하도록 추가. ### 5) 저장소에 수정 내역 제출
    -git commit
        - commit(커밋) : '의미'를 가질수 있게 되는 최소한의 단위
    - 변경된 파일 저장소에 제출             

6) 커밋 로그를 조회하는 명령어

    - git log
    - git log -p 
        - patch
        - 파일 단위에서 변경 내용을 보여줌. 

    - git log -[숫자]
        - 최근 몇개의 커밋을 보여줄지 지정함

    - git log --status  
        - 갓 커밋의 통계 정보 볼수 있음.
           - 어떤 파일이 수정되었고, 각 파일에서 몇 줄이추가, 삭제되었는지 의미함.    

    - git log --pretty=oneline
        - 각 커밋을 한 줄로 보여줌

    - git log --pretty=oneline --graph
        - 여러 브랜치를 생성하고 병합하는 작업을 가시적으로 그래프적으로 표시함.

7) 브랜치 병합

    - git merge 브랜치이름
        - 현재 작업 중인 브랜치에 '브랜치이름'의 브랜치를 끌어와 병합함

깃 작업 트리 (working tree)

1) 작업 디렉터리(Work Directory)
    - 실제 작업 중인 파일들이 존재하는 영역임.
    - 파일 생성, 기존 파일을 수정

2) 스테이징 영역(Staging Area)
    - 작업 디렉토리에서 작업 중인 파일 중 깃이 추적하는 파일들을 식별하는 영역
    - 실제로는 .git 숨김 폴더 내부의 index 파일에서 추적하는 파일들을 식별하고 있다.

3) 지역 저장소(Local Repository)
    - 스테이징 영역에서 추적되는 파일아 커밋으로 등록되는 영역임.
    - 스테이징 영역의 파일 혹은 파일들이 하나의 변경 단위인 커밋으로 등록되는 과정임.

alt

git add 명령으로 스테이징 영역에 파일이 추가됨

1) Stage : 커밋으로 기록할 수 있는 최종 상태

    - Tracked 상태와 Unmodified 상태 

2) UnStage : 스테이징 영역에 있지만, 파일에 변화가 있는 상태

    - 커밋으로 기록할 수 있는 상태가 아님

새로운 브랜치 생성 및 이동

0) 브랜치 (branch)

    - 프로젝트 기준 코드인 main 브랜치로부터 독립적인 작업 공간을 만들어주는 기능
    - 여러 개발자가 서로 다른 버전의 코드를 만들때 서로의 작업에 영향을 주고받지
      않기 위해 필요함.

1) 저장소에 브랜치 추가

    - git branch 이름 

2) 작업중인 브랜치 변경

    - git checkout 브랜치이름

3) 충돌 발생

    - 각 브랜치가 하나의 파일 동시에 수정하는 경우 생김.
    - Conflict 해결해야함.
        - 병합하면서 생기는 충돌은 해결 해야함.

    - 병합 실패한 코드에서 내용 확인
        - 충돌 발생 부분 시작 표시 
            - <<<<<<<<<<<<<<HEAD

        - 충돌 난 부분 끝 표시
            - >>>>>>>>>>>>>>ezen

        - 경계 표시
            - =============            

alt

4) 병합 실패한 경우의 내용 확인

    - 수동으로 충돌 해결해야 함.
        - 충돌 난 두 브랜치 중 하나 내용 선택
        - 두 수정 내역 합침.            

    - 충돌 난 부분 어떤 의미인지 이해하고 있어야 해결 가능.    

태그:

카테고리:

업데이트:

댓글남기기