Version Controal System(VCS), 버전 관리 시스템이다. 버전 관리 시스템은 Subversion, Mercurial, CVS 등 다양한데 그 중에서 왜 Git을 사용하는가? 그 이유는 Git이 가장 대중적으로 많이 쓰이기 때문이다. 처음 배우기에도 좋아서 이후에 다른 버전 관리 시스템을 이용할 때에도 적응하기 쉽다.
- 수정할 때마다 파일을 새로 만들면 관리가 힘들다.
- 언제든 이전 버전의 코드로 돌아갈 수 있다.
- 이력을 남기기 위해서.
- 하나의 프로젝트를 두고 여러명의 개발자들이 협업할 수 있다.
- Git을 사용한 프로젝트들의 저장소.
- 개발자의 social network.
즉, Git은 프로젝트의 버전관리를 도와주는 시스템이고, GitHub는 Git을 이용해 버전관리를 한 프로젝트들을 관리하게 해주는 호스팅 서비스다.
Git repository는 Git으로 관리하는 프로젝트 저장소다. 쉽게 말해 폴더라고 생각하면 된다.
- Local repository : 본인의 컴퓨터에 저장된 로컬 버전의 프로젝트 저장소
- Remote repository : 로컬 repository 와는 반대로 내 컴퓨터가 아닌 외부(일반적으로 원격 서버) 버전의 프로젝트 저장소. 팀에서 작업 할 때 특히 유용하다. 이 곳에서 프로젝트 코드를 공유할 수 있고, 다른 사람의 코드를 확인할 수도 있다. 로컬 버전의 프로젝트와 병합하고, 변경 사항을 적용 할 수 있는 곳이다.
git init
: 새로운 git 저장소 생성git status
: git 상태 확인git diff
: add되지 않은 이력과 add된 이력의 차이점 확인git add
: 파일 수정 이력 기록(commit 전 단계)git commit
: 파일 수정 이력 기록git log
: commit 이력 보기. 영수증같은것!
우선 바탕화면에 폴더를 하나 만들어 볼것이다. cd 바탕화면
입력 후 mkdir test
를 입력해서 "test"라는 폴더를 만든다.
git init
명령어를 입력하면 Git을 시작할 수 있다. ls -al
명령어를 입력해보면 새로운 Git 파일이 만들어진 것을 볼 수 있다. git init
명령어를 쓰기 전에 ls -al
명렁어로 파일을 조회해 보면 전 후 차이를 알 수 있을 것이다.
이제 Git 명령어를 사용할 수 있게 됐다!
아까 만들었던 폴더 안에 파일을 하나 만들어보자. touch minha.md
명령어로 파일을 만들고 파일 내용을 수정한다. vi minha.md
명령어를 입력하면 vi(visual editor) 로 들어가서 편집할 수 있다.
staging area 에 추가하고 싶지 않거나 git 에서 관리하지 않아도 되는 파일이 있다면, .gitignore.
파일을 프로젝트 폴더에 생성해서 파일명과 폴더명을 넣어두면 된다(각 파일, 폴더는 새로운 줄에 입력돼야 한다).
git status
명령어를 입력하면 git 상태를 확인할 수 있다. 아직 추적하지 않은 파일이라 빨간색으로 표시되는 md 파일이 보일것이다.
변경 파일을 git add
를 통해 추적하자.
파일이 정상적으로 추가됐다! 이제 파일 수정 이력을 기록할 준비가 되었다. 이 파일은 git rm --cached minha.md
를 입력하면 추적 대상에서 제외할 수 있다.
git add .
는 Git의 모든 파일을 추적할 수 있는 명령어다. 만약 minha.md
외에 추적할 파일이 있다면 그 파일까지 같이 add 될것이다. 일단은 파일이 하나 뿐이니 하나만 add 된 모습을 볼 수 있다.
이제 commit을 해보자! commit 이란, 프로젝트의 현재 상태를 커밋에 저장하는 것이다. 커밋 히스토리에 필요한만큼 커밋을 생성 할 수 있으며, 커밋 간 앞뒤로 이동하여 프로젝트 코드의 다른 변경사항을 확인할 수 있다. 이를 통해 프로젝트의 진행 상황을 효율적으로 관리할 수 있게 된다. 일반적으로 커밋을 남기는 시점은 특정 내용, 기능을 추가한 후 또는 수정 사항을 적용한 후 정도로 들 수 있다.
git 커밋 컨벤션에 맞춰서 commit 메세지를 작성해야 하는데 자세한 내용은 이쪽으로.
git commit -m "1st commit"
를 입력하면 커밋이 돼야 하는데...
아... 계정 정보가 없나보다. git config --global user.email
과 git config --global user.name
명령어를 입력해서 계정을 등록하고 다시 commit을 해보면,
야호! 성공했다. 그럼 아까전에 만들었던 minha.md
파일에 내용을 하나 더 추가해보자.
그리고 두번째 commit을 해보자.
이걸 github 페이지에 올려보자. git reset --hard 해시
를 쓰면 된다.
특정 commit으로 기록을 되돌리는 명령어인데 이때 당시에 왜 이걸 썼는지 모르겠다. 이전 commit으로 돌아가는 것도 아니고 최신 commit을 push하는건데 굳이 이 명령어를 썼어야 했나...? 일단 지나간 일이니 내버려 두고, 이 명령어에 대해서 추가적으로 정리하자면, --hard
뒤에 붙여야 하는 commit 해시 값은 위의 사진의 노란색 부분이다. 복붙이 귀찮다면 앞의 4자만 써도 충분히 알아듣는다.
(2022.6.17 수정)
Github repositories와 폴더를 연결해야지 최종 commit이 된다. git remote add origin
명령어 뒤에 본인 Github 주소를 적으면 된다. git remote
의 결과가 origin 이면 성공이다.
이제 git push origin master
명령어로 Git을 푸쉬하면 끝!