git 이해하기

임창현·2022년 11월 5일
0

git

목록 보기
2/3
post-thumbnail

새로운 저장소 만들기

폴더를 만들고, 그 안에 아래 명령을 실행하면 새로운 git 저장소가 만들어진다.

git init

저장소 받아오기

로컬 저장소를 복제(Clone)하려면 아래 명령어를 실행한다.

git clone /로컬/저장소/경로

원격 서비스의 저장소를 복제하려면 아래 명령을 실행한다.

git clone 사용자명@호스트:/원격/저장소/경로

작업의 흐름

로컬 저장소는 세가지로 구성되어 있다.

  1. 잡업 디렉토리(Working directory) : 실제 파일들로 이루어짐
  2. 인덱스(Index) : 준비 영역(staging area)의 역할
  3. HEAD : 최종 확정본(commit)을 나타냄

추가와 확정(commit)

변경된 파일을 아래 명령어로 (인덱스에) 추가할 수 있다.

git add <파일 이름>
git add *

실제 변경 내용을 확정하려명 아래 명령어를 실시해야 한다.

git commit -m "이번 확정본에 대한 설명"

지금까지 변경된 파일이 HEAD에 반영되었다. 하지만, 원격 저장소에는 아직 반영되지 않은 상태이다.

변경 내용 발행(push)하기

HEAD안에 있는 변경 내용을 원격 서버로 올리기 위해 다음 명령을 실행한다.

git push origin master
(다른 가지를 발행하려면 master를 원하는 가지 이름으로 바꿔주세요)

기존에 있던 원격 저장소를 복제하는 것이 아니라면, 원격 서버의 주소를 git 에게 알려줘야 한다.

git remote add origin <원격 서버 주소>

가지(branch)치기

  • 아래 명령으로 :"feature_x"라는 이름의 가지를 만든고 갈아탑니다
    git checkout -b feature_x
  • master 가지로 돌아온다.
    git checkout master
  • 가지 삭제
    git branch -d feature_x

갱신과 병합(merge)

로컬 저장소를 원격 저장소에 맞춰 갱신하려면 다음 명령어를 실행

git pull

이렇게 하면 원격 저장소의 변경 내용이 로컬 작업 디렉토리에 받아지고(fetch), 병합(merge)됩니다.
다른 가지에 있는 변경 내용을 현재 가지(예를 들어, master가지)에 병합하려면 아래 명령어를 실행

git merge <가지 이름>

두 명령어 모두 자동으로 변경 내용을 병합하려고 시도하는데 이떄 충돌이 일어나기도 한다. 충동을 해결했다면, 아래 명령어로 git에게 아까의 파일을 병팝하라고 알려준다.

git add <파일 이름>

변경 내용을 병합하기 전, 어떻게 바뀌었는지 비교할 수 있다.

git diff <원래 가지> <비교 대상 가지>

출처 : https://rogerdudler.github.io/git-guide/index.ko.html

profile
Hi there 👋 i'm backend developer

0개의 댓글