전 세계 개발자들의 가장 활발하고, 인기있는 자료 저장소 중 한곳이다. github를 통해 프로젝트를 같이 진행하거나 오픈소스 공유 등이 이울어 지고 있다.
git의 공식명칭은 분산 버전 관리 시스템(VCS) 입니다. 즉 프로젝트 파일의 변경사항을 추적하는 시스템 입니다. 이를 통해 개발자들은 변경 사항을 기록하고, 특정 시점의 버전으로 언제든 돌아갈 수 있습니다. 이런 버전 관리 시스템은 많은 사람들이 효율적으로 함께 작업하고, 프로젝트를 중점으로 협업할 때 사용할 수 있습니다. 각 개발자가 자신만의 프로젝트 버전을 본인 컴퓨터에 갖게 됩니다. 나중에 이러한 개별 버전의 프로젝트를 병합하여, 기준이 되는 버전의 프로젝트에 적용 할 수 있게 됩니다.
git은 개인 혹은 팀 간의 프로젝트를 관리하는데 널리 사용되고 있는 툴입니다. 따라서 git을 다룰 줄 아는 것은 요즘 모든 개발자들 에게 가장 중요한 기술 중 한 개 입니다.
git을 설치 후 git을 사용 할 수 있는지 확인하기 위해 터미널을 연 후 'git --version'을 입력한다.
git에 본인 정보를 등록하기 위해서 터미널에서 이름과 email을 정의해 주면 된다.
git config -- global user.name '이름'
git config -- global user.email ' 이메일'
git 버전 확인
Repositories(저장소)
git을 사용할 때는 repository 라는 용어를 잘 알고 있어야 합니다. git repository는 git으로 관리하는 프로젝트 저장소 입니다.(폴더)
local repository - 본인의 컴퓨터에 저장된 로컬 버전의 프로젝트 저장소
remote repository - 로컬 repository와는 반대로 내 컴퓨터가 아닌 외부 버전의 프로젝트 저장소, 프로젝트 코드를 공유할 수 있고, 다른 사람의 코드를 확인할 수 있습니다. 또, 로컬 버전의 프로젝트와 병합하고, 변경 사항을 적용 할 수 있는 곳 입니다.
initializing a repository
git init - 프로젝트 폴더 내에 숨겨진 git 디렉토리를 생성합니다.
이제 git은 현재 저장소에 대한 모든 변경 사항을 추적 관리 하게 됩니다.
4-1.checking the status(상태확인)
프로젝트 폴더 내 다음 명령어를 입력하여 repository의 현재 상태를 확인 할 수 있습니다.
git status
git 사용시 가장 많이 사용되는 명령어입니다. 어떤 파일이 변경되었는지, 어떤 파일이 추가되었는지를 보여줍니다.
git status로 git으로 관리 추적되지 않고 있던 파일들이 있다면 해당 파일들을 staging area로 추가 해 줄 수 있습니다.
4-2. 프로젝트의 폴더에서 git add라는 명령어를 통해 우리가 원하는 파일들을 staging area로 추가해 줄 수 있습니다.
git add file.js - 특정 파일만 추가 할 때
git add file.js file2.js file3.js - 여러파일들을 추가하고 싶다면 아래와 같이 할 수 있습니다.
git add 파일 각각 적는 것이 아닌, 아래와 같이 모든 파일을 한번에 추가할 수도 있습니다.
4-3 커밋은 특정 시간의 코드 스냅샷의 형태로 해당 repository에 커밋 기록이 남게 됩니다. git 명령어를 사용해서 모든 파일을 storaging area에 추가해 주었다면 이제 커밋을 남길 준비가 되었습니다.
git commit -m 'Commit message'
식별을 위해 큰 따옴표안에 커밋 메세지를 작성해야 합니다. 커밋 메세지는 repository에 커밋하는 변경 사항을 설명하는 짧은 summary 여야 합니다. 위 명령어를 실행하면, 터미널에 방금 남긴 커밋에 대한 세부 내용이 보여지게 됩니다.
4-4. git log 명령어를 통해 보여지는 log는 각 커밋에 대한 자세한 정보를 담고 있습니다.
4-5. staging area에 추가하고 싶지 않거나 git에서 관리 x는 .gitignore파일을 프로젝트 폴더셍 생성해주시면 됩니다. gitignore 파일 안에, 해당하는 파일명과 폴더명을 나열하면 됩ㄴ디ㅏ. 각 파일 폴더가 새로운 줄에 입결되어야 합니다.