Git이란 개발자의 코드를 효율적으로 관리하기 위해서 개발된 ‘분산형 버전 관리 시스템’
버전관리 소프트웨어란?
개발 중 변경 내역을 추적할 있도록 개발된 소프트웨어를 말한다.
즉, 버전별로 저장되어 변경된 사항을 알 수 있게 한다. 이전 버전과 차이를 알 수 있고, 이전 버전을 볼 수 있다.
특정 시간에 코드의 스냅 샷을 찍을 수 있다는 것은 코드베이스가 커지고 이전 버전을 참조해야 할 때 매우 유용하다. 작은 규모의 프로젝트면 모르겠지만 많은 개발자가 함께 개발해 나가는 프로젝트에서 많은 파일, 많은 소스코드가 변경되고 추가된다면 이 '버전관리 프로그램'은 굉장한 힘을 발휘한다.
Git 저장소를 만드는 방법은 2가지다. 하나는 기존의 프로젝트나 디렉토리를 Git 저장소로 만드는 방법, 그리고 다른 하나는 다른 서버에 있는 저장소에서 Clone을 하는 방법이다.
:: 여기서 저장소란 나의 컴퓨터 즉, 내가 작업을 하는 컴퓨터에 만드는 것이다. 이것을 Local Repository라고 부른다.
git init
프로젝트의 디렉토리로 이동하여 위의 명령을 실행한다.이 명령은 .git 이라는 하위 디렉토리를 만든다. 이 디렉토리는 숨겨진 형태로 만들어지며 저장소에 필요한 파일들이 들어있다. 그 파일들은 프로젝트의 버전 기록을 추적하며 프로젝트를 Git 저장소 로 바꾸어 Git 명령을 실행할 수 있도록 한다.
git add [file명] or git add *
파일을 변경하고 프로젝트의 버전 기록에 스냅 샷을 찍도록 선택하면 git add , 파일 이름 또는 git add *를 사용하여 현재 폴더의 모든 파일을 포함하여 스테이징 영역에 추가해야 한다.
git commit -m “[message]”
최종적으로 스테이징 영역에서 파일에 대한 변경 사항을 저장소의 버전 기록으로 커밋하려면 변경 사항에 대한 설명 메시지와 함께 git commit 을 실행해야 한다 .
이런 과정을 통해 Git 저장소가 생성된다.
Fork
다른 서버에 있는 저장소에서 내용을 가져오려면 먼저 fork 라는 것을 해야 한다.
저장소 오른쪽 상단에 보면 위와 같은 그림이 존재한다. 여기에서 fork 버튼을 누르면 해당 저장소의 내용이 나의 저장소로 옮겨진다. (나의 저장소는 나의 서버에 있는 저장소이다.) 그 이후 clone을 진행한다.
git clone <repo 주소>
clone을 하는 방법은 간단하다. 다른 저장소에 들어가서 포크를 해서 내 리포지토리(나의 원격 저장소)에 내용을 가져온다. 그런 다음 내 리포지토리에 들어가 위의 그림에서 보이는 것과 같은 code 버튼을 클릭하여 clone을 할 주소를 복사한다.
내 컴퓨터에서 터미널을 켜고 프로젝트 디렉토리로 들어가서 해당 명령어와 함께 주소를 입력하면 해당 프로젝트의 히스토리를 다 가져온다.
위에서 Git 저장소를 2가지 방법으로 생성하였는데 이제 GitHub를 Git저장소를 사용하여 이용해보자.
이 경우 Github을 이용하려면 나의 프로젝트 또는 디렉토리를 나의 원격 저장소와 연결시켜 주어야 한다.
git remote add origin <내 주소>
위의 명령을 통해 나의 로컬 저장소 ( 내 컴의 저장소)와 원격 저장소를 서로 이어준다.
git remote -v # 연결이 잘 되었는지 확인할 수 있다.
이 경우에는 clone으로 저장소를 생성함과 동시에 연결까지 되어진다. 따로 연결을 할 필요가 없다.
자, 이제 Git 저장소와 나의 로컬 저장소가 잘 이어졌으면 Github를 이용하면 된다.
git push [repo 명][branch명]
git push origin master # 보통 나의 리포지토리에 파일을 푸쉬할 때 사용
새로 초기화 된 리포지토리 또는 로컬 리포지토리의 커밋 된 변경 사항을 GitHub에 게시하려면 코드의 리포지토리 및 분기와 함께 git push 를 사용 합니다. 일반적으로 사용할 기본 구문은 git push origin master 이다.
참조
https://medium.com/@abhishekj/an-intro-to-git-and-github-1a0e2c7e3a2f
https://nolboo.kim/blog/2013/10/06/github-for-beginner/
https://mrw0119.tistory.com/120