TIL 20 | Github Basics

hyounglee·2020년 8월 7일
0

Git

목록 보기
2/4

이번 TIL은 유튜브 얄팍한 코딩사전 - 가장 쉬운 Git 강좌 - (하) Github편을 참고하여 작성되었습니다. (강좌 url: https://www.youtube.com/watch?v=GaKjTjwcKQo)

1. Github란?

github는 전 세계에서 가장 많은 소스코드들이 공유되어있는 클라우드라고 할 수 있다. 오픈소스의 성지. 내 소스들을 안전하게 보관하고 동료들과 협업하고 전세계의 뛰어난 개발자들과 소통할 수 있다.

2. Github 사용법

1) Github에 소스 올리기

프로젝트를 레파지토리에 올리는 방법이다. CLI와 SourceTree 모두 사용이 가능하다. $ git status로 모두 commit 되어 있는지 확인한다. 빠진게 있다면 전부 add 해서 commit 한다.

$ git remote : 현 폴더의 원격 레파지토리를 확인하는 명령어

깃헙에서 레파지토리를 생성한 후 아래의 코드를 복사하여 CLI에 입력하면 원격 레파지토리가 등록되고, 소스가 push 된다.

$ git remote add origin https://github.com/MiaJLee/github-practice.git
$ git push -u origin master

다시 $ git remote를 하면 해당 레파지토리가 나오는 것을 확인할 수 있다.

Sourcetree에서는 메뉴바에서 [Repository] - [Add remote], 원격이름을 추가하고 URL에 복사한 Github 레파지토리 주소를 붙여넣는다. 마지막으로 Github 유저명을 입력하면 된다.

좌측 바의 REMOTE에서 origin을 확인할 수 있고 이를 push 해주면 깃헙에서 확인할 수 있다.

2) 새로운 파일을 추가하기

$ git add -A
$ git commit -m “ADD dog”
$ git push origin master

3) 다루지 않을 파일 설정

오픈소스로 공유되면 안되는 민감한 내용이 담긴 파일이나, 자동으로 파일이 다운로드 되는 등의 파일은 Git에 올라가지 않도록 만들어야 할 필요가 있다.

프로젝트 폴더 바로 안쪽, 최상위 공간에 .gitignore 파일을 생성한다. 숨김파일로 생성이 된다. 여기에 아래 참고 링크에 나오는 형식으로 git의 관리에서 제외시킬 파일이나 폴더, 기타 요소를 적으면 된다.

참고링크 : http://atlassian.com/git/tutorials/saving-changes/gitignore

add - commit - push를 하면 .gitignore에 있는 파일을 제외하고 깃헙에 저장된다.

4) Github의 소스 내려받기

다른 동료들과 private한 레파지토리를 공유하기 위해서는 해당 레파지토리에서 [Setting] - [Collaborators] 를 통해 초대 이메일을 보내면 된다.

레파지토리에서 Code 버튼 - 주소 복사

$ git clone https://github.com/MiaJLee/github-practice.git (복사한 주소)

폴더가 복사되어있는 것을 확인할 수 있다.

$ cd (폴더명)을 입력해서 그 폴더 안으로 들어가야 한다.
ex) $ cd github-practice

들어간 후 git log를 입력해보면 프로젝트의 내역들이 그대로 복사되는 것을 확인할 수 있다.

SourceTree에서도 아래와 같이 클론이 가능하다.

5) 작업 주고받기

clone 한 파일을 수정하고 git에 올리면 수정된 것을 확인할 수 있지만, 동료가 수정한 파일을 일일히 확인하는 것은 번거로운 일이다. CLI에서 간단한 방법으로 파일의 업데이트 상황을 확인할 수 있다.

$ git fetch
$ git status

origin에 비해 커밋이 뒤쳐져 있는지, up to date인지 확인할 수 있다.

뒤쳐져 있는 경우 다운 받아야 할 것이 있다는 의미이므로 git pull (원격명) (로컬 브랜치명)을 입력한다. ex) $ git pull origin master

소스트리에서도 Fetch를 선택하면 master branch에 뭔가 받아올 것이 있다는 표시가 뜬다.

** 팀원이 작업한 것을 꾸준히 받아야 conflict를 방지할 수 있다.** 또한 깃헙에서 내용을 pull 받기 전까지는 내 쪽에서 push가 불가능하다.

6) 브랜치 주고받기

$ git branch : 브랜치 생성
$ git checkout : 브랜치로 넘어가기
$ git checkout -b (브랜치명) : 위 두 단계를 한번에 가능하다!!!

$ git branch는 로컬에서의 브랜치만 볼 수 있지만
$ git branch -a를 하면 로컬과 원격 모두를 볼 수 있다.
아직 원격의 브랜치가 반영이 되지 않았다면 $ git fetch로 Github의 현 상태를 파악하고 나서 다시 $ git branch -a를 하면 된다.

깃헙에 있는 브랜치를 가져오기 위해서는 아래와 같이 입력하면 된다.
git checkout -b my-idea origin/my-idea
(로컬에서 my-idea라는 브랜치를 원격의 origin/my-idea에서 가져오고 그 평행우주로 넘어간다.)

7) 충돌 해결하기

팀원과 내가 같은 파일의 같은 내용을 수정한 경우 pull을 먼저 받아야 push가 가능한데, 이때 pull을 하게 되면, 팀원의 내용과 나의 내용이 충돌(Conflict)하여 병렬되어 나타난다. 이때 합의를 보고 수정한 뒤 add - commit까지 하고 push를 하면 상황이 끝난다.

원격 브랜치 삭제하는 법
$ git push -d origin my-idea

profile
(~˘▾˘)~♫❝ 쉽게만 살아가면 재미없어 빙고 .ᐟ ❞•*¨*•.¸¸♪

1개의 댓글

comment-user-thumbnail
2020년 8월 8일

오 깔끔하게 정리 잘하셨네요👍 잘 보고 갑니다~~

답글 달기