Github
-
[Git] 브랜치 병합(Merge) & 충돌(Conflict) & 해결(Resolve)에 대하여Github/Git 2020. 11. 19. 19:56
브랜치 병합(Merge)란? merge 명령어를 사용하면 여러 개의 브랜치를 하나로 모을 수 있다. 예를들어, 아래 그림과 같이 master 브랜치에서 뻗어 나오는 bugfix 브랜치를 봐보자. 현재 상황은 master 브랜치에서 뻗어나온 bugfix 브랜치에서 X, Y 커밋을 한 상태이다. 여기서 Merge를 하면 위의 그림과 같이 두 개의 브랜치가 합쳐지게 된다. bugfix 브랜치를 master 브랜치로 병합할 때, master 브랜치의 상태가 bugfix 브랜치를 만들었을 때의 상태와 같다면 매우 쉽게 merge 할 수 있다. bugfix 브랜치는 master 브랜치의 이력을 모두 포함하고 있기 때문에, master 브랜치는 단순히 이동하기만 해도 bugfix 브랜치와 합쳐질 수 있다. 이와 같은..
-
[Git] gitignore란 무엇일까?Github/Git 2020. 11. 19. 17:15
Github에서 Repository를 보다보면 위와 같이 .gitignore 파일을 본적이 있을 것이다. 이번 글에서는 .gitignore가 어떤 역할을 하는지에 대해서 정리해보려 한다. .gitignore란? .gitignore파일이란 Git 버전 관리에서 제외할 파일 목록을 지정하는 파일이다. git으로 프로젝트를 관리할 때, 그 프로젝트 안의 특정파일들은 Git으로 관리할 필요가 없는 경우가 있다. 예를들면 NodeJS-Express로 개발할 때 npm module Java 컴파일된(.class) 파일 AWS 비밀 키, JWT 비밀 키 등등이 있다. npm 모듈은 용량이 크기도 하고, 프로젝트를 clone 받은 다음에 직접 npm install 해주는 것이 더 효율적이기 때문에 올리지 않는다. 그리..
-
[Git] pull과 fetch의 차이는 무엇일까?Github/Git 2020. 11. 19. 13:58
pull과 fetch의 차이는 무엇일까? git pull: git remote 명령을 통해 서로 연결된 원격 저장소의 최신 내용을 로컬 저장소로 가져오면서 병합한다. git push의 반대 성격이라 생각하면 된다. git fetch: 로컬 저장소와 원격 저장소의 변경 사항이 다를 때 이를 비교 대조하고 git merge 명령어와 함께 최신 데이터를 반영하거나 충돌 문제 등을 해결한다. 일반적으로 브랜치를 만들지 않고 혼자서만 작업하면서 Git과 Github를 사용한다면 pull과 fetch를 사용할 일이 거의 없을 것이다. 하지만 대체적으로 Git을 사용할 때는 같이 협업하는 사람과 같이 사용할 것이다. 협업을 하다 보면 내가 로컬에서 작업하고 있을 때, 같은 팀원이 원격 저장소에 먼저 변경 사항을 커밋..
-
[Git] remote: 로컬 저장소와 원격 저장소를 연결하기Github/Git 2020. 11. 19. 12:05
Github에 있는 원격 저장소를 로컬 PC에 다운을 받고 싶다면 git clone을 사용하면 된다. 그러면 만약 이미 작업을 하고 있는 로컬 저장소가 있고 이를 원격 저장소와 연결하고 싶다면 어떻게 해야할까? 빈 원격 저장소를 로컬 PC로 clone받고 기존에 작업한 코드 파일들을 다 옮긴 후에 push하는 방법도 있겠지만 상당히 번거로울 것 같다. 이러한 상황 때 사용하는 명령어가 git remote이다. 바로 어떻게 사용하는지 차근차근 알아보자. 먼저 Github에서 아래와 같이 레포지토리를 하나 만들어보자. 이번에는 실습을 위해서 위와 같이 Add a README.file을 체크해서 만들었다. (하지만 평상시에 레포지토리를 만들 때는 체크하고 만들지 않는 것을 추천한다. 이유는 아래에서 설명한다)..
-
[Github] Pull Request를 통해 코드리뷰(Code Review)하는 법Github/Github 2020. 10. 27. 20:17
혼자 개발하는 것이 아닌 여러 명에서 협업을 통해서 개발을 하는 과정에서 Git을 사용해서 하고 있을 것이다. 이 때 기능별로 브랜치를 만들거나 각자 팀만의 브랜치 전략에 맞게 브랜치를 나눠서 개발을 하고 있을 것이다. 그러면 브랜치를 나눠서 작업을 하다가 브랜치의 작업이 끝나서 develop 또는 master 브랜치에 병합(merge)를 해야할 때 바로 머지하면될까? 아니다. 이럴 때 하기 전에 한 단계 절차가 있는데 이것이 Pull Request이다. 풀 리퀘스트, 줄여서 PR은 팀원들과 협업을 할 때 가장 중요한 기능으로, 머지를 하기 전 확인을 받는 절차이다. 여기서 확인이라 하면 방법이 여러가지가 있겠지만 이 글에서는 PR review를 통해서 확인하는 절차에 대해서 알아보려 한다. 이제 협업을..
-
[Github] 협업시 프로젝트(Projects)와 이슈(Issue) 사용하기Github/Github 2020. 10. 25. 04:26
이번 글에서는 Github에서 제공하는 Projects와 Issue가 무엇인지 알아보며, 이것을 이용해서 프로젝트를 효율적으로 관리할 수 있는 글을 알아보자. 먼저 Github에 들어가서 자신의 레포지토리 아무거나 들어가보면 아래와 같은 화면을 볼 수 있다. 그림에서 볼 수 있듯이 Github에서는 Issue와 Project를 제공해주는데 하나씩 무엇이고 어떻게 사용하는지 알아보자. 1. Projects란? 프로젝트는 작업 현황과 진행도를 볼 수 있는 메뉴이다. 이슈, PR(풀 리퀘스트)들을 하나의 작업으로 구분해 그 작업이 현재 어느 정도 진행되었는지 확인할 수 있다. To Do : 해야 할 작업 In Progress : 진행 중인 작업 Done : 완료된 작업 그리고 Projects를 사용하면 위와 ..
-
[Github] 팀 프로젝트를 위한 Organization 만들기Github/Github 2020. 10. 23. 13:13
Organization이란? 여러 명이 같은 프로젝트를 관리하는 데 사용하는 Github 그룹 계정이다. 바로 어떻게 만들어서 사용하는지 알아보자. 먼저 Github에 접속하자. 그리고 위와 같이 New organization을 누르자. Github에서 무료로 Organization을 만들 수 있기 때문에 Join for free를 클릭하자. 위와 같이 Organization의 이름을 정하고 Contact email에는 자신이 메일을 받을 이메일을 적어주면 된다. 위와 같이 초대하고자 하는 사람의 깃허브 아이디를 입력하고 Complete setup을 클릭하자. 그 다음 나오는 설정화면에서 자신의 Organizaiton 목적에 맞게 설정하면 된다. 필자는 위와 같이 설정을 한 후에 Submit을 눌렀다. ..
-
[Github] Pull Request를 통하여 프로젝트에 기여하기Github/Github 2020. 10. 22. 02:38
이번 글에서는 다른 사람의 레포지토리에 Pull Request를 보내는 방법에 대해서 소개하려 한다. 먼저 Github에 들어가서 본인이 Pull Request를 보내고 싶은 레포지토리에 들어가보자. 나는 SOPT-SERVER-WIKI라는 레퍼지토리에 pull Request를 보낼 것이다. 그러기 위해서는 먼저 해당 레포지토리를 Fork를 한 후에 자신의 Github으로 복사를 하자. 그러면 본인의 Github 저장소에 위와 같이 만들어진 것을 확인할 수 있다. 그리고 이제 해당 프로젝트를 자신의 로컬 PC에 Clone을 받아서 작업을 진행해보자. 위와 같이 Code를 누른 후에 뜨는 화면에서 복사버튼을 누르면 주소가 복사가 된다. 위와 같이 git clone을 이용해서 복사한 주소를 뒤에 넣으면 해당 ..