티스토리 뷰
Final Project 를 함께 제작할 팀을 구성했기 때문에, 함께 협업을 시작하기 전에 GitHub의 사용법을 정리할 필요가 있을 거 같다.
기초적인 회원 가입이나 설치는 따로 설명이 필요한 부분이 아닐 거 같아서 생략하도록 하겠다.
참고로 설치는
https://git-scm.com/book/ko/v2/%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0-Git-%EC%84%A4%EC%B9%98
에서 진행할 수 있다.
바로 기초적인 개념 설명부터 들어가보자.
<사전 지식>
1. 로컬 저장소와 원격 저장소
로컬 저장소는 해당 유저의 개인 컴퓨터 내에 있는 실제 저장소를 의미하고, 원격 저장소는 깃 서버 내부에 팀원들간 공유를 위해 존재하는 저장소라고 생각하면 편하다.
즉, 개인의 로컬 저장소에 코드를 저장한 뒤에 이를 원격 저장소에 연동하여 업데이트를 수행하여 팀 작업을 진행한다.
2. branch
팀 단위 개발이나 형상 관리를 위해 거의 필수적으로 필요한 기능이다. 업데이트의 흐름을 분기하여 기록한다는 개념으로 현재 진행 중인 개발 or 유지보수 작업이 원격 저장소 내에 있는 기존 프로젝트 소스에 영향을 받지 않게 하기 위해 분기 & 병렬 수행하는 기능을 branch라고 한다.
3. commit & push
- commit: 파일을 추가하거나 변경 내용을 저장소에 저장하는 작업
- push: 파일을 추가하거나 변경 내용을 원격 저장소에 업로드하는 작업
4. pull
pull 명령어는 원격 저장소에 있는 파일이나 코드를 자신의 로컬 저장소로 옮겨와 작업을 진행하기 위해 사용하는 기능이다.
<GitHub 사용법>
GitHub를 이용한 팀 단위 작업의 기본 흐름은 다음과 같다.
* 원격 저장소를 새로 작성하거나, 로컬 저장소에 있는 내용을 복제하는 과정은 처음 한번만 진행한다.
1. GitHub에 저장소 작성(git init) 또는 복제(git clone)
new 를 클릭하여 새로운 원격 저장소를 생성할 수 있다.
그럼 다음과 같은 화면을 확인할 수 있다. 사용할 repository 이름을 작성하고, 프로젝트의 성격에 따라 나머지 부분을 선택한 뒤 저장소를 생성할 수 있다.
진행해보면,
위와 같이 로컬 저장소에 어떻게 연동하는 지에 대한 설명을 확인할 수 있다. 이제 위 설명에 나온 코드를 하나 하나 확인하며 command line에 작성해주면 된다. (필자는 cmd를 사용하기 때문에 cmd로 설명을 진행하겠다.)
웹 프로젝트를 진행하고 있기 때문에, 어제 풀어본 jQuery 예제가 있는 로컬 저장소를 연동해보려고 한다.
해당 프로젝트의 경로로 이동한 뒤,
위와 같이 git init 명령어로 원격 저장소를 사용할 수 있게끔 git 폴더를 생성한다.
2. 파일의 작성, 편집
프로젝트 소스 파일을 작성 혹은 편집하여 변경 사항이 있도록 만들어준다.
3. 파일의 생성/변경/삭제를 git 인덱스에 추가(git add)
이후 이미 작성된 로컬 저장소에 있는 파일들을 전부 원격 저장소에 옮기기 때문에 git add * 을 입력하여 모든 파일을 원격 저장소로 올리기 위해 인덱스에 추가했다.
4. 변경 결과를 로컬 저장소에 커밋(git commit)
commit을 하여 add한 내용을 전부 원격 저장소에 저장해준다.
이후에 현재 .git 폴더가 존재하는 로컬 저장소를 원격 저장소에 연동해줘야 하기 때문에 main이라는 브런치를 생성함과 동시에 remote 명령어를 사용하여 연동해준다.
5. 로컬 저장소를 push하여 원격 저장소에 반영(git push)
이후 위와 같이 바로 push를 진행하여 커밋한 내용을 실제 원격 저장소에 반영해주면 완료된다.
연동 작업을 한번 수행했기 때문에, 다음 작업부터는 add -> commit -> push 작업을 바로 수행할 수 있다.
<원격 -> 로컬 저장소로 Pull>
pull 작업은 생각보다 간단하다.
우선 예제를 위해 text.txt 파일을 생성하여 push 한 뒤, 로컬 저장소에서만 삭제하였다.
이제 이 상태에서
- git pull origin main
을 진행하여 원격 저장소에만 저장되어 있는 text.txt 로컬 저장소로 옮길 수 있다.
'Support' 카테고리의 다른 글
[Log4j2] Config 파일 <log4j2.xml> (0) | 2022.04.14 |
---|---|
[git] 현재 개발 중인 프로젝트에서 gitignore 추가가 안될 때 (0) | 2021.07.28 |
[lumbok] 기본 어노테이션 요약 (0) | 2021.07.01 |
[lib] Lombok (0) | 2021.06.30 |
[GitHub] 현재 진행 중인 프로젝트를 연동 (0) | 2021.03.25 |
- redux-thunk
- Promise
- react
- 인천 구월동 맛집
- redux
- Async
- 파니노구스토
- 이탈리안 레스토랑
- 맛집
- AsyncStorage
- 인천 구월동 이탈리안 맛집
- 정보보안기사 #실기 #정리
- react-native
- javascript
- await
- Total
- Today
- Yesterday