Git 개념, 기본 명령어(init, add, commit, log, reset), Github, 협업(branch, fork, slack)

JIYOON·2021년 7월 6일
1

Git

목록 보기
1/1
post-thumbnail

1️⃣ Git의 이해

01. Git

로컬(내가 보고 잇는 컴퓨터)에서 돌아가는 버전 관리 프로그램

02. Github

리모트(다른 사람 컴퓨터)에 이러한 버전들을 저장해놓는 프로그램 - 소스 코드 버전 저장소

❗️ 다른 프로그램들: git과 같은 버전 관리 프로그램에는 git 외에도 svn(subversion)이라는 프로그램이 있고 github같은 버전 관리 저장소에는 gitlab, bitbucket 등이 있다.





2️⃣ Git 기본 명령어

01. 설치 후 세팅하기

Git 공식 홈페이지에서 git을 설치할 수 있다.

Getting Started - First-Time Git Setup
위의 공식 문서를 보고 git 설치 후 초반 세팅을 하도록 한다.
간단한 초반 세팅은 다음과 같다.

$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com

여기서 사용할 유저네임과 이메일을 설정한다.
이 때의 user.name과 user.email은 github에 등록된 것과 같아야 github와 연동하여 사용할 수 있다.

$ git config --list         //설정 내용을 전부 확인할 수 있다.
$ git config user.name      //설정 내용 중 user.name과 관련된 부분만 확인할 수 있다.

위 명령어를 통해 유저네임과 이메일이 잘 설정됐는지 확인할 수 있다.

$ git config --global init.defaultBranch main

위 명령어는 git에서 기본 브랜치의 명칭을 master에서 main으로 변경하면서 생기는 오류를 방지하기 위한 것이다.



❗️ CLI 환경에서 쉽게 경로 접근하기
cd 명령어를 통해 원하는 경로로 접근할 수 있지만 macOS에서는 위와 같이 원하는 경로의 옵션에서 터미널 열기를 선택하면 손 쉽게 terminal 창을 열 수 있다. windows에서는 파일 주소창에 cmd를 입력하면 된다.
위 사진에서는 postman 경로로 접근했지만 실제 로컬에서 하는 프로젝트는 root 경로와 가까운 곳에 프로젝트를 생성하는 것이 CLI 환경에서 빠르게 접근하기 용이하다. root 경로는 처음 터미널을 시행했을 때 지정되어 있는 경로이다.




02. init, add, commit

$ git init

.git 폴더를 생성하고 .git 폴더의 저장소를 초기화한다. .git 폴더가 생성된 폴더는 git이 관리하기 시작한다.

$ git status

현재 git의 상태를 보여준다.

$ git add .

.은 전부라는 뜻이므로 빼먹지 않고 입력하도록 한다. git add를 입력하면 모든 파일을 스테이징한다.
스테이징이란 깃에 반영할(이를 커밋이라 한다) 내용들을 추적하고 추가한다는 뜻이다.

명령어를 실행하기 전과 status를 비교해보면 차이를 볼 수 있다.

$ git commit -m "커밋메시지(initial commit)"

-m 뒤의 커밋메시지로 커밋한다. 커밋이란 버전과 기능 추가 같은 의미있는 변화를 사진 찍듯이 기록하는 것을 의미한다.
커밋메시지는 협업을 위해서 다른 개발자가 알아보기 쉬운 것으로 작성하는 것이 좋다. initial commit은 최초의 커밋을 할 때 자주 사용되는 커밋메시지이다.

커밋 후 status를 통해 위와 같이 커밋이 생성된 것을 확인할 수 잇다.




03. log, reset

$ git log

위 명령어를 통해 다시 한 번 커밋 로그를 확인할 수 있다.
위 사진에서 확인되는 노란번호 부분 '794a35a49dcd873c8e006f3234c9fd196c4b3e31'을 커밋해쉬코드라 한다.

$ git reset --hard 커밋해쉬코드

위 명령어를 통해 원하는 커밋의 버전으로 롤백할 수 있다.

$ git reset --hard

커밋하지 않은 변경 사항을 롤백하고 싶다면 커밋해쉬코드를 입력하지 않고 위의 명령어를 입력하면 마지막 커밋 상태로 롤백한다.





3️⃣ Github

01. 생성하기

github에 가입할 관리할 프로젝트의 repository를 생성하면 다음과 같은 창을 볼 수 있다.

$ git remote add origin https://github.com/깃허브유저명/연동할레포지토리명.git

위 명령어를 로컬 터미널의 프로젝트 경로에 입력하면 github의 repository와 로컬의 프로젝트를 연동할 수 있다.

$ git push origin main

깃허브 레포지토리의 메인 브랜치에 로컬에서 현재까지 생성된 커밋들을 모두 넣는다.
이 때 깃허브 계정의 유저네임과 비밀번호를 입력해야 한다.

깃허브에 커밋이 들어간 것을 확인하면 파란 부분을 눌러서 지금까지의 커밋과 커밋코드, 변경사항을 확인할 수 있다.
이를 통해 하나의 파일에 여러 개의 버전을 관리할 수 있음을 알 수 있다.

❗️ 이 외에도 프로젝트를 시작할 때 깃허브에서 레포지토리를 만든 후 로컬로 복사하는 방법도 있다.




02. 내려받기

$ git clone 레포지토리주소

레포지토리 주소는 code>clone>https로 확인하거나 주소창을 복사하면 된다.
위 명령어를 통해 깃허브 레포지토리에 저장된 모든 커밋들을 로컬로 가져올 수 있다.

$ git pull origin main

깃허브 쪽에서 일어난 변경 사항을 로컬로 동기화한다.



❗️ 그림으로 보는 최종 정리

❗️ 추가 공부
.gitignore 활용하기





4️⃣ 협업하기

01. branch

두 개의 공간에서 개발된 각자의 코드를 합치는 것
이러한 요청을 PR(pull request)라고 한다.

$ git branch

어떤 브랜치가 있는지 확인한다.

$ git branch 브랜치명

새로운 브랜치 생성

$ git checkout 브랜치명

원하는 브랜치로 이동한다.

$ git push origin 브랜치명

브랜치를 push한다.

이 후 깃허브에서 pull request와 merge를 통해 두 개의 파일을 합칠 수 있다.




02. fork

fork를 통해 협업 팀원의 github repository를 내 repository로 복제할 수 있다.
이후 원 repositroy에 PR을 요청할 수 있다.
이러한 방식으로 팀원과의 협업 뿐 아니라 오픈 소스에 기여할 수 있다.




03. slack

github를 slack과 연동하면 github의 알림을 slack으로 받아볼 수 있다!
slack에서 앱 추가> github> Connect Github Account로 연동 가능하다.





✅ Reference

Git알못을 위한 깃린이코스(인프런 강의) by 신재형

0개의 댓글