소스 코드 기록을 관리하고 추적할 수 있는 버전 관리 시스템
Git Repository를 관리할 수 있는 클라우드 기반 서비스
터미널을 열고 (Ctrl + Alt + T) sudo apt install git 을 입력해 패키지 git을 설치한다.
git --version을 입력하여 버전이 나오면 정상 설치된 것.
sudo apt install git // 루트 권한으로 git을 설치
git --version // 설치된 git의 버전을 확인
git 설치 후 가장 먼저 사용자 이름과 이메일 주소를 설정한다.
설정에 기록된 사용자 이름과 메일 주소를 앞으로 진행할 git 커밋 내역에 기록한다.
--global 옵션으로 설정하면, 사용자 홈에 저장되므로 git을 설정할 때 최초 한 번만 입력해도 된다.
나중에 github의 사용자 이름이나 이메일을 변경한다면 이 명령어를 다시 입력해야 한다.
만약 여러 프로젝트를 진행하고 있어서 프로젝트마다 다른 사용자 이름과 이메일 주소를 사용하고 싶으면
--global 옵션을 빼고 명령을 실행할 수 있다.
git config --global user.name "myname"
git config --global user.email "myname@example.com"
Git에서 커밋 메시지를 기록할 때, 특히 merge commit 확인 메시지가 나올 때 텍스트 에디터가 열린다. 기본값으로 텍스트 에디터 vi가 열리는데 여기서는 vscode로 변경하는 법을 적으려 한다.
git config --global core.editor "code --wait"
Github에서 다른 계정의 Remote Repository를 내 계정으로 가지고 올 때 쓴다.
Github 우측 상단에 'Fork'라는 버튼이 있음.
원격 Repository를 내 로컬에서 이용할 수 있도록 복사
git clone <레파지토리 주소>
내 로컬로 복사해 온 디렉토리의 commit 되기 전까지의 상태를 표시
git status
Commit 혹은 staged 되지 않은 변경 사항을 뺌
git restore <파일명>
Untracked files를 Staging area로 추가해서 git 관리하에 둠
git add <파일명> // 내 local의 untracked file을 staging area로 추가
git add . // staging area에 모든 파일을 한번에 추가
수정 작업이 끝났을 때 변경 사항을 저장
git commit -m '커밋 메시지' // -m 옵션을 통해 커밋할 내용의 코멘트를 작성
Commit 하기 전에 내용을 기록하는 장소
Local에서 Commit한 내용을 취소할 때
git reset HEAD^ // 가장 최신의 commit을 취소
Local에서 변경 및 commit된 사항을 Remote Repository에 업로드.
리모트에 있는 origin의 master 브랜치에 Local Repository의 변경 사항을
업로드 하기 위해서는 git push origin master라고 입력한다.
git push <origin> <branch>
현재까지 commit된 내역들을 터미널 창에서 확인
git log
내가 push한 변경 사항에 대해서 다른 사람들에게 알리는 것
기존 디렉토리를 Git Repository로 변환
git init
나의 Remote Repository에 연결
git remote add origin <레파지토리 주소>
// Local Repository에 Remote Repository 연결
pair의 Remote Repository에 연결
git remote add pair <레파지토리 주소>
// Local Repository에 Remote Repository 연결
연결된 Remote Repository 확인
git remote -v
// 현재의 Local Repository와 연결된 모든 Remote Repository 목록 확인
Remote Repository의 작업 내용 가져오기
git pull <shortname> <branch>
// Remote Repository의 해당 branch 내용을 Local Repository로 가져옴
같은 부분을 변경한 내용이 존재해 자동으로 병합할 수 없는 경우,
git status로 충돌된 내용을 확인할 수 있다.