Git

FeelSoo·2022년 4월 12일
0

CodeStates

목록 보기
12/43

Git 이란?


개발자의 코드를 효율적으로 관리하기 위해서 개발된 ‘분산형 버전 관리 시스템’ 을 의미.


특정 시점에 생성된 백업 복사본을 스냅샷이라고 하는데 이렇게 하나하나 스냅샷을 만들어 주는 작업을 commit이라고 한다. 스냅샷을 통해 버젼 관리를 진행할 수 있다는게 깃의 장점이다.


예를 들어 업데이트 버젼을 배포한 후 기능에 에러가 생겨 디버깅 해야 한다고 할 때 이전 버젼을 참고한다면 더 빠른 문제 해결이 가능할 것이다.

이렇게 매 commit 마다 변경 사항에 대한 이력이 남아 협업 및 버젼 관리가 용이하다.



그렇다면 Git Hub는 뭐야?


Github는 Git Repository를 관리할 수 있는 클라우드 기반 서비스이다. 즉 Git으로 버전을 관리하는 폴더에 대해서 Github를 통해 여러 사람들이 공유하고 접근할 수 있는 것이다.

Github에서 Code Review 등을 통해 협업이 가능하고, 수많은 오픈 소스 프로젝트들이 진행되고 있다.


그렇다면 Git은 어떻게 쓰는거야?


내가 작업하는 소스 코드 폴더가 버전 관리를 받게 하기 위해서는 내 폴더를 Git의 관리 아래에 두어야 한다.
Git으로 관리되는 폴더를 Git repository 라고 한다.

Git repository 는 Remote Repository와 Local Repository 두 종류의 저장소를 제공한다.

작업할 때는 Local Repository에서 할 수 있고 내가 작업한 코드를 공유하려면 Remote Repository에 업로드해 여러 사람이 함께 공유할 수 있다.

다른 사람이 Remote Repository에 올려놓은 소스 코드를 내 Local Repository 로 가지고 올 수도 있다.


즉 타인의 오픈 소스 코드를 사용하려면 fork 를 통해서 내 Remote Repo로 가져온 후, clone을 통해 내 컴퓨터(Local Repo)에 파일을 복사한다. 그리고 코드 수정을 완료하여 타인과 공유하고자 한다면 변경된 파일을 commit하여 Local Repo를 업데이트한 후 push를 통해 다시 Remote Repo로 저장할 수 있다. 이후 pull request를 통한 업데이트를 제안할 수 있다.


fork >> clone >> (코드 수정)>> push >> pull request


대략적인 work flow를 알아봤으니 실제로 사용하는 방법을 알아보자.


우분투 기준 터미널을 열어 다음 명령어를 타이핑한다.

sudo apt install git --- 관리자 권한으로 git을 설치한다

설치가 완료 되었다면 git에 나의 정보를 등록한다 ( Github에 등록된 사용자 이름과 이메일 주소를 사용 )

$ git config --global user.name "나의 사용자 이름"
$ git config --global user.email "내 이메일 주소"




등록을 완료했다면 계정 접근을 위한 ssh키를 생성해준다. 비대칭 키값이기에 2개가 생성될 것이다. 하나는 개인키, 하나는 공개키이다.

ssh-keygen



다음의 명령어를 프롬프트에 입력하여, 공개키를 복사한다

cat ~/.ssh/id_rsa.pub --- 공개키 출력


공개키를 복사한 후 본인 계정의 github의 설정의 ssh키 메뉴로 들어가 등록을 완료하면 git 설정은 끝난다.



이후 작업을 원하는 오픈 소스를 github에서 fork 후 ssh주소를 복사하여
git clone (ssh주소)

를 입력해주면 Remote Repo에 있던 파일이 Local로 복사된다.


이후 다음의 명령어들을 수행하여 작업을 완료할 수 있다.

git add .  -- git의 관리 대상 등록을 위한 스테이징 영역에 추가 
git commit -m '내용' --- '내용'의 이름으로 Local Repo에 commit
git push origin master(main일수도) --- Local Repo에서 Remote Repo로 파일 전달

< 참고시 유용한 명령어 >

git status -- staging area와 untracked files 목록에 어떤 것들이 있는지 확인
git resotre -- commit되지 않은 loca Repo의 변경사항 취소
git reset HEAD^  --  가장 최신의 commit 을 취소



만약 누군가와 협업하고 있는 상황이어서 간편하게 코드를 받고 싶다면 다음의 순서로 가능하다

git remote add origin (내 Repo 주소) --- 나의 loca Repo와 Remote Repo 연동
git remote add pair (상대방 Repo 주소) --- 상대방의 주소와 내 주소 연동
git remote -v 				  // 연결된 Remote Repo 확인
git pull pair master(or main) // 상대방의 Remote Repo의 작업물을 가져와서 자동병합

이후 다시 코드 수정해서 add, commit, push 순으로 진행하면 끝
profile
세상은 넓고 배울건 많다

0개의 댓글