git 을 사용하자

SANGKU OH·2020년 7월 9일
0
post-thumbnail

새로운 저장소 만들기

폴더를 하나 생성하고, 그 안에서 아래 명령을 실행하자!

git init

그러면 새로운 git 저장소가 만들어집니다.

저장소 받아오기

로컬 저장소를 복제(Clone)하려면 아래 명령을 실행하자!

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

원격 서버의 저장소를 복제하려면 아래 명령을 실행하자!

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

⚡️만약 기존에 있던 원격 저장소를 복제한 것이 아니라면, github의 레파지토리 연결하자!

git remote add origin https://github.com/사용자/레파지토리주소.git

작업의 흐름

로컬 저장소는 git이 관리하는 3 곳으로 구성되어 있다

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

추가(add)와 확정(commit)

변경된 파일은 아래 명령어로 index에 추가할 수 있다!

git add <파일이름>
git add *

하지만 실제로 변경 내용을 확정하려면 아랭 명령을 내려야 한다!

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

변경된 파일이 head에 반영 되었다!
하지만, 아직 원격 저장소에는 반영이 되지 않았다.

변경 내용 발행(push)하기

현재의 변경 내용은 아직 로컬 저장소의 head 안에 머물고 있다!
이 변경 내용을 원격서버로 올려보자!

git push -u origin master(or 다른 branch)

가지(branch)치기

가지는 안전하게 격리된 상태에서 무언가를 만들 때 사용!
(저장소를 새로 만들면 기본으로 master 가지가 만들진다)
이제 다른 가지를 이용해서 개발을 진행하고, 나중에 개발이 완료되면 master 가지로 돌아와 병합하면 끝!

아래 명령으로 "sub_brch"라는 이름의 가지를 만들고 갈아타보자

git checkout -b sub_brch

아래 명령으로 master가지로 돌아올 수 있다

git checkout master

아래 명령으로는 가지를 삭제할 수 있다

git branch -d "sub_brch

새로 만든 branch를 원격 저장소로 전송하기 전까지는 다른 사람은 접근 불가!

갱신과 병합

로컬 저장소를 원격 저장소에 맞춰 갱신하려면 아래 명령을 실행해보자

git pull

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

git merge <가지이름>

첫번째 명령이든 두번째 명령이든, git은 자동으로 변경 내용을 병합하려고 시도한다.
문제는, 항상 성공하는 게 아니라 가끔 충돌(conflicts)이 일어나기도 한다...
이렇게 충돌이 발생하면, git이 알려주는 파일의 충돌 부분을 여러분이 직접 수정해서 병합이 가능하도록 해야 하죠.
충돌을 해결했다면, 아래 명령으로 git에게 아까의 파일을 병합하라고 알려주세요.

git add <파일이름>

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

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

로컬 변경 내용 되돌리기

혹시나... 실수로 무언가 잘못한 경우 아래 명령으로 로컬의 변경 내용을 되돌리자...

git checkout -- <파일이름>

위 명령은 로컬의 변경 내용을 변경 전 상태(head)로 되돌려준다.
다만, 이미 index에 추가된 변경 내용과 새로 생성한 파일은 그대로 남는다.

⚡️만약, 로컬에 있는 모든 변경 내용과 확정본을 포기하려면, 아래 명령으로 원격 저장소의 최신 이력을 가져오고, 로컬 master 가지가 저 이력을 가리키도록 할 수 있다!

git fetch origin
git reset --hard orgigin/master

profile
Prof.Google을 통해 필요한 정보를 이 곳에 insert 🐸

0개의 댓글