[네부캠] Week4 - Git 기초

오홍석·2024년 8월 26일
0

네부캠

목록 보기
18/28
post-thumbnail

학습 내용


Git 이란?

  • 소프트웨어 버전 관리 시스템(VCS, Version Control System)의 한 종류이다.
  • 프로그램의 소스코드를 관리하는 프로그램이다.
  • 분산된 환경을 통해 소스코드를 관리한다.
  • 이를 통해 협업을 하면서 팀원이 수정한 내역을 확인하고, 배포된 서비스의 버전을 관리하며 효율성을 증진시킬 수 있다.

Git Server

  • git은 분산된 환경을 통해 소스코드를 관리하기 때문에 Server, Client가 존재한다.
  • 코드를 모아놓은 원격 컴퓨터를 Remote Server라고 하는데, git에서는 git server가 그 역할을 한다.
  • 종류
    • github.com
    • gitlab 등

Git Client

  • remote server에 저장된 코드의 사본을 받아 개발하는 컴퓨터를 local client라고 한다.
  • git에서는 git client라고 한다.
  • 종류
    • git CLI (Command-line interface)
    • Visual Studio Code에 내장된 git

Repository

  • 우리가 개발 또는 버전 관리를 해야하는 프로그램을 저장하는 저장소이다.
  • Repository에서는 코드를 저장하는 것이외에 다양한 작업을 수행할 수 있다.
    • Commit
    • Pull Request
    • Issue 등등

Commit

  • git에서 commit은 버전을 저장하는 것을 의미한다.
  • commit을 수행하면 commit history에서 내역을 확인할 수 있고, 어떠한 부분이 변경되어있는지 자세하게 확인할 수 있다.

Issues

  • 팀원들과 코드를 보고 의견을 교환하며 해결해야하는 경우가 다수 존재한다.
  • 이러한 경우에 해결해야하는 문제를 업로드하여 팀원들이 확인하고 의견을 댓글과 같은 형식으로 달 수 있다.
  • 해당 이슈가 어떠한 카테고리에 해당하는지 지정하는 것이 labels
  • 해당 이슈를 처리할 사람 또는 관련된 사람이 누구인지 지정하는 것이 Assignee

Clone

  • 의미와 동일하게 remote Repository를 local 환경으로 복제해오는 것이다.
  • git clone repo-주소 : local로 repository를 복제해온다. remote repository와 연결까지 해준다.

Push

  • local 환경에서 commit을 통해서 버전을 기록하였지만 이것을 remote repository에서 알 수 있는 방법이 없다.
  • 그렇기 때문에 push를 통해서 local의 commit을 remote repository로 보내주어야 한다.
  • 만약 push를 하지 않은 상태에서 local repository에 문제가 생긴다면 복구하기 어려울 수 있다.
  • git push origin branch_name : branch_name의 commit을 origin의 branch_naem으로 보낸다.
  • git push -u origin main : -u는 --set-upstream의 약자로 최초에만 repository 명과 branch 명을 적어주면 두 관계를 기억하고 이후에는 git push만 해도 자동으로 전송된다.
  • git push origin one_branch:two_branch : one_branch에서 origin의 two_branch로 전송된다. 다른 이름의 branch로 commit을 전송할 때 사용된다.

Pull

  • remote repository의 내용을 local repository로 가져와 합친다.
  • fetch와 merge가 동시에 진행된다.
  • git pull origin branch_name : origin의 branch_name에서 내용을 가져와 현재 위치한 브랜치의 내용과 합친다.

Fetch

  • local git에서 remote repository의 최신 이력 정보를 확인하라는 명령을 전달한다.
  • 즉, remote repository의 최신 이력 사항을 가져와 확인하지만 local의 작업 상황에 영향을 끼치지 않는다.
  • git fetch : 현재 위치한 브랜치를 가지는 원격 저장소의 최신 이력 사항을 가져와 확인한다.
  • git fetch --all : 연결된 모든 원격 브랜치의 최신 이력 사항을 가져와 확인한다.
  • git remote update : git fetch --all 하고 동일한 기능이다.
  • git fetch origin branch_name : 개별 브렌치 최신 이력 사항을 가져와 확인한다.

Merge

  • 서로 다른 브랜치에서 작업을 하고, 해당 내용을 합쳐야 하는 경우에 사용된다.
  • 작업 내용을 합친다.
  • 현재 브랜치 branch_one인 경우에 git merge brnach_two를 하면 branch_onebranch_two 코드를 합친다.

Add

  • 다음 Commit을 하기 전까지 변경된 사항을 모아놓기 위해서 사용한다.
  • working directory에서 Staging Area로 보내는 것이다.
  • git add 경로/파일명 : 개별 파일 staging area로 전송
  • git add . : 현재 디렉토리의 변경 사항 모두 staging area로 전송
  • git add -A : 모든 작업 폴더의 변경 사항 staging area로 전송

Checkout

  • Checkout은 브랜치 전환, 파일 체크아웃, 커밋으로 돌아가기 등 다양한 용도로 사용된다.
  • git checkout branch_name : develop 브랜치로 전환
  • git checkout -b branch_name : 새 브랜치를 생성하고 그곳으로 전환
  • git checkout 5d3a123 : 특정 커밋으로 HEAD를 이동
  • git checkout -- file.txt : 특정 파일을 마지막 커밋 상태로 복원
profile
기동코딩

0개의 댓글