git
과 github
을 알아보고 차이점을 알아보자. 아주 기초적인 작업을 할 때 나는 두개의 차이점을 전혀몰랐지만 오늘로써야 깨달았다. 뭐 같은거 아닌가? 하는 생각이었지만 비슷하지만 다른 개념이었다. 하나씩 알아보자.
Git의 공식 명칭은 분산 버전 관리 시스템 (VCS) 입니다.
쉽게 말해, 프로젝트 파일의 변경 사항을 추적하는 시스템입니다. 이를 통해 개발자들은 프로젝트의 변경 사항을 기록하고, 특정 시점의 버전으로 언제든 돌아갈 수 있습니다. 이런 버전 관리 시스템은 많은 사람들이 효율적으로 함께 작업하고, 프로젝트를 중심으로 협업할 때 사용할 수 있습니다. 각 개발자가 자신만의 프로젝트 버전을 본인 컴퓨터에 갖게됩니다. 나중에 이러한 개별 버전의 프로젝트를 병합하여 기준이 되는 버전의 프로젝트에 적용 할 수 있게 됩니다.
Git은 개인 혹은 팀 간의 프로젝트를 관리하는 데 가장 널리 사용되고 있는 툴입니다. 따라서 Git을 다룰 줄 아는 것은 요즘 모든 개발자들에게 가장 중요한 기술 중 하나입니다.
Git 공식 홈페이지: https://git-scm.com/
Git은 주로 command-line interface (CLI)를 통해 사용합니다.
우리 컴퓨터에 Git이 설치되어있는지 확인해보자. 터미널에서 다음 명령어를 실행하자.
% git --version
버젼확인 하는 명령어이다. 버젼이 출력된다면 설치가 되있는 것이다. 만약 없다면 다음 링크를 통해 각 운영체제의 파일을 설치하자.
Git 설치 링크: https://git-scm.com/downloads
git config --global user.name "이름"
git config --global user.email "이메일"
github
에서 사용하는 이름과 이메일을 확인하는 명령어이다. 만약 지금 하지 않았다면 나중에 commit
할 때 입력하는 란이 나온다 그때 해도 무방하다.
git을 사용할 때 repository
의 개념을 잘 알아야한다. 프로젝트를 관리하는 저장소정도로 생각하면 되겠다. 일반 문서 작업의 파일을 관리할 때 우리는 폴더를 생성하여 관리한다. 이것을 Git에서는 repository
라고 부른다고 생각하면 되겠다.
Git
을 사용함에 있어서 다음의 개념이 정말 중요하다.
local repository
: 나의 컴퓨터에 저장된 로컬 버전의 프로젝트 저장소Remote repository
: - Remote repository - 로컬 repository 와는 반대로 내 컴퓨터가 아닌 외부 (일반적으로 원격 서버) 버전의 프로젝트 저장소. 팀에서 작업 할 때 특히 유용합니다. 이 곳에서 프로젝트 코드를 공유할 수 있고, 다른 사람의 코드를 확인할 수도 있습니다. 또, 로컬 버전의 프로젝트와 병합하고, 변경 사항을 적용 할 수 있는 곳입니다.local
환경을 통해 관리한 프로젝트를 remote
를 통해 외부사이트에 commit
한다. 그렇게 되면 다른 사람과 공유가 가능해 함께 작업할 수 있다.
지금부터 본격적으로 Git
으로 local
환경에 저장하고 remote
저장소에 commit
까지 해보자.! 순서대로 하면 쉽게 commit할 수 있을 것이다.
1. Initializing a repository
git init
# wecode라는 이름의 폴더에서 다음 명령어 수행
프로젝트를 관리할 폴더 내에서 다음 명령어를 실행한다.(터미널)
다음 명령어는 해당 폴더에 숨김파일인 .git
을 생성하게 되고 해당 폴더(repository)는 추적/관리되게 됩니다. local
환경에서 repository
를 생성하였다.
2. 파일 생성
seongbong.md
실습을 위해 파일이름이 나의 이름인 md
마크다운 문서를 하나 생성하였다.
3. 내용 편집
다음과 같은 내용을 작성하여보자. 의식의 흐름대로 적었다......
vi seongbong.md
다음 사진과 같은 에디터를 여는 명령어이다.
i
를 누르면 insert라는 뜻이다. 내용을 작성할수있다. 사진과같은 내용을 작성하고 esc
를 누르면 내용이 저장된다. 이후 :wq
를 입력하고 빠져나오자. w
: 저장 q
: 종료 명령어이다.
4. 상태 확인
git status
위 명령어는 Git으로 작업 할 때 굉장히 자주 사용되는 명령어입니다. 어떤 파일이 변경되었는지, 어떤 파일이 추가되었는지 등을 전부 보여줍니다.
git status
명령어를 통해 Git 으로 관리(추적)되고 있지 않던 파일(들)이 있다면 해당 파일들을 staging area 로 추가해줄 수 있습니다.
모든 파일이 Git으로 관리되고 있는 시점에서는, git status
명령어를 통해 모든 변경사항을 확인할 수 있고, 커밋을 남기기 위해 staging area 로 추가해줘야 합니다.
5. 중간 저장
git add seongbong.md
수정했던 파일을 중간저장하는 단계이다.
6. commit
커밋 해보기.
git commit -m "메세지"
메세지에는 수정한 내용이나 정보를 담으면 된다. ex)기능 추가, 오타 수정 등...
7. git log
git log
git log
를 보면 다음과 같은 창이 뜬다. 고유 식별 번호별로 커밋순으로 정렬되있는 것을 볼 수 있다.
GitHub은 Git repository를 위한 호스팅 플랫폼입니다. GitHub (및 기타 유사한 플랫폼) 없이도 Git을 사용할 수 있지만 다른 개발자와 같은 프로젝트를 두고 협업하거나 내 코드를 공유하기는 어렵습니다.
개인 local
환경에 commit했던 파일들을 깃허브에 올려보자. WEB 블로그 포스팅편에서 깃허브에 new repository
를 만드는 연습을 해봤다. 간단하게 한번 더 살펴보자.
Github공식사이트: https://github.com/
new repository
를 생성해준다.https://ssabooda.github.io/git_practice/
git remote add origin https://ssabooda.github.io/git_practice/
위 명령어는 local
환경에 있던 repository를 remote repository에 commit하겠다는 얘기이다.
4. 다음 명령어 실행
git push -u origin master
현재 나의 local repository
는 master
branch이다.
branch
는 간단하게 말해 각각의 작업 repository라고 보면 된다. 기본 branch가 main인 경우도 있으니 당황하지말자.
내가 local
환경에 생성했던 repository의 브랜치는 master
이기 때문에 master
를 push해준것이다.
나의 현재 repository의 브랜치를 알고 싶으면 다음의 명령을 사용하자.
git branch
Github
에 잘 commit된것을 볼 수 있다. ^^ 이런 식으로 작업마다 버전관리를 하면 될 것같다. !
branch 생성
git branch <브랜치 이름> # 브랜치 생성
git checkout <브랜치 이름> # 해당 브랜치로 이동
git push
git add . # 현재 폴더 commit 추가
git commit -m "커밋 메시지" # 현재 폴더를 commit
git git push origin feature/crud # 해당 브랜치를 푸쉬
git init 해체
rm -r .git
현재 연결 저장소 확인
git remote -v
git branch 이름 변경
git checkout -b <브랜치 이름>
위 명령어를 통해 숨겨져있는 .git
삭제한다. git local 저장소를 해제하는 명령어이다.
여기까지 Git과 Github를 활용하여 프로젝트의 버전관리를 통해 여러 동료개발자들과 협업하는 환경을 구축하는 방법을 알아봤다. 아직은 어색하긴하지만 금방 친숙해질거 같다. 아니 친숙해져야한다. 👏 터미널에 작업하는것이 정말 재밌다. 뭔가 글씨밖에 없는데 컴퓨터 안의 구조를 파악해서 명령을 주고 행동하게 한다는 것이 정말 재밌는 것 같다.