GIT 정리

동방의지니·2020년 12월 16일
0

개념

git?

  • 분산버전 관리 시스템.
  • 로컬 환경의 파일을 추적하다가 소스를 수정하면 그 변경 사항을 감지.
  • 사용자는 자신이 리모트 서버에 변경 사항을 반영하고 싶은 파일이나 소스코드의 라인을 고른 뒤 리모트 서버에 업로드
  • 파일을 항상 보고 있음. 24시간 365일.
    무엇을? 변화를! 모든 파일의 변화 기록.
    변화? 무엇이, 어디서, 몇번, 몇시, 누가 모든 변화된 내용을 추적
  • 같은 파일에 대한 각기 다른 버전 보관 가능.

gitlab?

  • 클라우드에 있는 깃 제공자.
  • 내 컴퓨터에서 깃히스토리를 가져와서 클라우드에 있는 깃웹사이트에 푸쉬하는 것. 다른 사용자는 이를 가져올 수 있음
  • 모든 변화 기록 확인 가능

remote와 origin

git을 사용할 때는 내가 어떤 리모트 서버에 변경 사항을 업로드 할 것인지 정해야하는데 반드시 하나의 리모트 서버만 사용할 수 있는 것이 아니기 때문에 내가 사용하는 리모트 서버의 이름을 정해줘야한다. 이때 주로 사용하는 관례적인 이름이 바로 origin.

repository

  • 파일이나 디렉토리를 저장하는 장소.
  • git repository는 변경 이력이 존재하는 파일별로 구분되어 저장.
  • 내 컴퓨터에 있는 '로컬 저장소'와 전용 서버에서 관리되는 '원격 저장소'.
  • 로컬 저장소에서 작업을 진행하고 그 결과를 원격 저장소에 저장가능.
  • 리모트 서버 내에서 구분되는 프로젝트 단위.
  • 레파지토리를 clone받을 때는 해당 레퍼지토리를 가리키는 URL이 필요한데 URL의 맨 마지막에 .git 확장자를 가지는 방식으로 표현.

branch

  • 소프트웨어가 출시된 이후 버전의 지속적인 유지보수를 통해 기능을 추가하거나 버그를 수정하게 되는데 이처럼 여러버전을 관리하기 위해 사용하는 기능
  • 독립된 작업을 진행하기 위한 작업 공간.
  • 맨 처음 git을 초기화 했을 때 기본적으로 master(메인 브랜치)라는 이름의 브랜치 생성.
  • 개발하는 기능 또는 버그 픽스에 따라서 브랜치를 새로 생성하고 거기서 작업한 후에 나중에 다시 master로 합침.
  • branch는 어떤 branch에서 분리시키는 것이고 분리된 branch는 분리될 당시의 부모 branch 상태를 그대로 가지고 있음.

기본 명령어 및 설명

git init

  • 폴더를 깃 명령어를 이용할 수 있는 폴더로 만듬
  • git의 모든것이 담겨있는 .git이라는 폴더를 만듬
  • master 브랜치 생성.

git clone ~.git

  • 리모트 서버의 레파지토리에서 클라이언트로 파일을 복붙하는 행위.
  • 어떤 레파지토리에서 파일을 가져올 것인지에 대한 정보가 필요한데 이를 URL로 표현.
  • 현재 위치에 레파지토리 이름과 동일한 디렉토리 밑 소스 전부 복사

git push

  • 로컬 컴퓨터에서 작업하고 깃허브에 변경사항을 "push". remote 저장소에 정보 저장.

git pull

  • 나의 로컬 저장소에 불러오는 것
  • 리모트 서버의 최신 소스를 가져와서 로컬 소스에 병합해주는 명령어
  • 만약 clone 후, 다른 사람이 리모트 서버를 상태 갱신 했더라도 리모트 서버가 우리에게 변경 사항을 알려주지 않음.
  • 우리가 직접 서버에 문의해야함.
  • 단순히 가져오는 것이 아니라 가져와서 합친다의 개념. 브랜치끼리도 pull을 통해 합칠 수 있음.
  • 현재 내 로컬 브랜치와 같은 이름을 가진 리모트 서버 브랜치가 타겟

git pull origin master

  • origin 리모트 서버의 master 브랜치가 타겟

git fetch

  • 리모트 서버의 최신 이력을 내 클라이언트로 가져오되 병합은 하지 않는 명령어
  • 다른 사람들이 리모트 서버에 업데이트한 모든 내역을 받아올 수 있다. 내역을 보고 내 로컬에 있는 버전이 리모트 서버에 있는 버전보다 이전 버전이라면 pull명령어를 사용하여 내 컴퓨터의 소스 코드를 갱신하면 된다.

git status

  • git 저장소 상태 체크
  • 어떤 파일이 저장소 안에 있는지 커밋이 필요한 변경사항이 있는지 현재 저장소의 어떤 브랜치에서 작업하고 있는지 등을 확인.

git add

  • git이 관리할 파일 지정
  • add를 안하면 commit시 git에 반영되지 않음.
  • 저장소에 새 파일을 추가하는 것이 아니라 깃이 새 파일들을 지켜보게 함
  • 파일을 추가하면 깃의 저장소 '스냅샷'에 포함된다.

git commit -m "message"

파일을 추가하거나 변경사항을 저장소에 기록하기 위해 커밋 메시지를 남기는 작업을 말함. 변경한 사람, 시간, 변경 내용등을 기록해 과거 변경 이력과 내용을 손쉽게 파악할 수 있음.

  • 변경사항 최종 저장
  • 저장소의 '스냅샷'을 찍기 위해 입력.

git remote ~.git

  • 로컬 저장소와 remote 저장소(github/외부 서버) 연결

git remote -v

  • remote 저장소 버전 확인

git branch cats

  • "cats"라는 이름의 브랜치 생성

git merge

  • 브랜치에서 작업을 끝내고 모든 협업자가 볼 수 있는 master 브랜치로 병합

git merge cats

  • "cats" 브랜치에서 만든 모든 변경사항을 master로 추가
profile
당찬 신입!

0개의 댓글