1. Git 설치하기
Git을 설치하기 위해서는 해당 운영체제에 맞는 Git 설치 파일을 다운로드하여 설치해야 합니다. 아래는 각 운영체제별로 Git 설치 방법을 안내합니다.
Windows
1. Git 공식 웹사이트(https://git-scm.com/)로 이동합니다.
2. 다운로드 페이지에서 Windows 용 Git 설치 파일을 클릭하여 다운로드합니다.
3. 다운로드된 설치 파일을 실행하여 Git 설치 마법사를 실행합니다.
4. Git 설치 마법사의 단계별 안내에 따라 설치를 진행합니다.
5. 설치가 완료되면 Git Bash 또는 Git GUI 등의 Git 관련 도구를 사용할 수 있습니다.
macOS
1. Git 공식 웹사이트(https://git-scm.com/)로 이동합니다.
2. 다운로드 페이지에서 macOS 용 Git 설치 파일을 클릭하여 다운로드합니다.
3. 다운로드된 DMG 파일을 더블 클릭하여 설치합니다.
4. 설치 중에는 시스템 관리자 권한이 필요할 수 있으므로 해당 계정의 비밀번호를 입력합니다.
5. 설치가 완료되면 터미널 또는 Git GUI 등의 Git 관련 도구를 사용할 수 있습니다.
Linux
1. 대부분의 Linux 배포판은 기본적으로 Git을 설치하고 있습니다. 터미널을 열고 다음 명령어로 설치 여부를 확인합니다.
$ git --version
2. Git이 설치되어 있지 않은 경우, 패키지 관리자를 통해 설치할 수 있습니다. 각 배포판의 패키지 관리자를 사용하여 Git을 설치합니다. 아래는 몇 가지 주요 Linux 배포판에서의 패키지 관리자를 사용한 Git 설치 명령어입니다.
- Ubuntu / Debian:
$ sudo apt-get install git
- Fedora:
$ sudo dnf install git
- CentOS / RHEL:
$ sudo yum install git
3. 설치가 완료되면 터미널 또는 Git GUI 등의 Git 관련 도구를 사용할 수 있습니다.
2. Git 저장소 초기화 및 설정하기
Git을 사용하기 위해 저장소를 초기화하고 설정해야 합니다. 아래는 Git 저장소 초기화 및 설정하는 방법을 안내합니다.
저장소 초기화
Git 저장소를 초기화하려면 저장소가 위치할 디렉토리로 이동한 후 다음 명령어를 실행합니다.
$ git init
해당 디렉토리가 Git 저장소로 초기화되면 `.git` 디렉토리가 생성되고 Git이 해당 디렉토리를 추적하기 시작합니다.
사용자 설정
Git에서 사용자 이름과 이메일 주소를 설정해야 합니다. 이 설정은 커밋 시 작성자 정보로 사용됩니다. 다음 명령어를 통해 사용자 정보를 설정합니다.
$ git config --global user.name "Your Name"
$ git config --global user.email "yourEmail@example.com"
위 명령어에서 “Your Name”과 “yourEmail@example.com”에는 사용자의 실제 이름과 이메일 주소를 입력합니다.
3. 기본적인 Git 명령어
Git을 사용할 때 자주 사용하는 몇 가지 기본적인 Git 명령어를 소개합니다.
git add
변경된 파일을 Staging Area에 추가합니다. 다음은 파일을 추가하는 명령어입니다.
$ git add 파일명
git commit
Staging Area에 있는 파일들을 커밋하여 버전을 만듭니다. 다음은 커밋하는 명령어입니다.
$ git commit -m "커밋 메시지"
git push
로컬 저장소의 커밋을 원격 저장소로 업로드합니다. 다음은 업로드하는 명령어입니다.
$ git push 원격저장소명 브랜치명
git pull
원격 저장소의 최신 변경 내용을 로컬 저장소로 가져옵니다. 다음은 가져오는 명령어입니다.
$ git pull 원격저장소명 브랜치명
git checkout
브랜치를 변경하거나 파일을 되돌립니다. 다음은 브랜치를 변경하는 명령어입니다.
$ git checkout 브랜치명
4. 커밋과 푸시하기
Git을 사용하여 변경 사항을 커밋하고 원격 저장소에 푸시하는 방법을 안내합니다.
커밋하기
변경된 파일을 커밋하여 버전을 기록합니다. 다음은 파일을 커밋하는 명령어입니다.
$ git add 파일명
$ git commit -m "커밋 메시지"
“파일명”은 변경된 파일의 이름이며, “커밋 메시지”는 해당 커밋의 설명을 나타냅니다. 변경된 파일을 `git add` 명령어로 Staging Area에 추가한 후, `git commit` 명령어를 사용하여 커밋합니다.
푸시하기
로컬 저장소의 커밋을 원격 저장소로 업로드하여 다른 사람들과 코드를 공유합니다. 다음은 커밋을 원격 저장소로 푸시하는 명령어입니다.
$ git push 원격저장소명 브랜치명
“원격저장소명”은 푸시할 원격 저장소의 이름이며, “브랜치명”은 푸시할 브랜치의 이름입니다. `git push` 명령어로 로컬 저장소의 커밋을 원격 저장소로 업로드할 수 있습니다.
5. 브랜치 관리하기
Git을 사용하여 브랜치를 생성하고 전환하며, 브랜치를 병합하는 방법을 설명합니다.
5.1 브랜치 생성하기
새로운 브랜치를 생성하여 독립적으로 작업할 수 있습니다. 다음은 브랜치를 생성하는 명령어입니다.
$ git branch 브랜치명
“브랜치명”은 생성할 브랜치의 이름입니다. `git branch` 명령어로 새로운 브랜치를 생성할 수 있습니다.
5.2 브랜치 전환하기
작업을 위해 생성한 다른 브랜치로 전환할 수 있습니다. 다음은 브랜치를 전환하는 명령어입니다.
$ git checkout 브랜치명
“브랜치명”은 전환할 브랜치의 이름입니다. `git checkout` 명령어로 브랜치를 전환할 수 있습니다.
5.3 브랜치 병합하기
여러 브랜치에서 작업한 내용을 하나로 합치기 위해 브랜치를 병합할 수 있습니다. 다음은 브랜치를 병합하는 명령어입니다.
$ git merge 브랜치명
“브랜치명”은 병합할 브랜치의 이름입니다. `git merge` 명령어로 브랜치를 병합할 수 있습니다.
6. 변경 이력 확인하기
Git을 사용하여 변경 이력을 확인하는 방법을 설명합니다.
변경 내용 보기
변경된 파일의 내용을 확인하고 싶을 때 다음 명령어를 사용할 수 있습니다.
$ git diff
`git diff` 명령어를 실행하면 변경된 파일의 내용을 확인할 수 있습니다.
커밋 로그 보기
이전 커밋들의 로그를 확인할 수 있습니다. 다음은 커밋 로그를 출력하는 명령어입니다.
$ git log
`git log` 명령어를 실행하면 커밋 로그를 확인할 수 있습니다. 커밋의 해시, 작성자, 날짜, 커밋 메시지가 표시됩니다.
특정 커밋의 변경 내용 보기
특정 커밋의 변경 내용을 확인하고 싶을 때 다음 명령어를 사용할 수 있습니다.
$ git show 커밋해시
“커밋해시”에는 변경 내용을 확인하고 싶은 커밋의 해시값을 입력합니다. `git show` 명령어를 사용하여 해당 커밋의 변경 내용을 확인할 수 있습니다.
7. 충돌 해결하기
여러 개발자가 동시에 작업하거나 다른 브랜치에서 변경된 내용을 병합할 때 충돌(conflict)이 발생할 수 있습니다. 충돌은 Git이 자동으로 해결할 수 없으므로 수동으로 해결해야 합니다.
충돌 확인하기
브랜치 병합 또는 변경 내용을 병합하기 전에 충돌이 있는지 확인하여야 합니다. 충돌은 Git이 자동으로 감지하여 파일에 표시합니다. 충돌이 있는 파일을 여는 것으로 충돌 내용을 확인할 수 있습니다.
충돌 해결하기
충돌을 해결하려면 충돌이 발생한 파일을 열고 충돌 부분을 수정해야 합니다. 충돌 해결을 위해 다음 과정을 수행할 수 있습니다.
- 충돌 부분 수정: 충돌이 발생한 파일을 열어 충돌 부분을 수정합니다. Git이 자동으로 추가한 충돌 표시(예: <<<<<<< HEAD, =======, >>>>>>> branch-name)를 기준으로 변경 사항을 선택하거나 수정합니다.
- 변경 사항 저장: 충돌을 해결한 후 파일을 저장합니다.
- 변경 사항 스테이징: 충돌을 해결한 파일을 스테이지에 추가합니다.
- 변경 사항 커밋: 스테이지에 추가한 파일을 커밋하여 충돌을 해결합니다.
다음은 충돌 해결 과정을 보여주는 예시입니다:
$ git merge 브랜치명
Auto-merging 파일명
CONFLICT (content): Merge conflict in 파일명
Automatic merge failed; fix conflicts and then commit the result.
충돌이 발생한 파일을 열면 다음과 같은 내용을 확인할 수 있습니다:
<<<<<<< HEAD
내용 A
=======
내용 B
>>>>>>> branch-name
수정하여 충돌을 해결한 후 다음과 같이 변경 내용을 저장, 스테이징하고 커밋합니다:
$ git add 파일명
$ git commit -m "충돌 해결"
8. 원격 저장소 활용하기
Git을 사용하여 원격 저장소를 활용하는 방법을 설명합니다.
원격 저장소 연결하기
로컬 저장소를 원격 저장소와 연결하려면 다음 명령어를 사용합니다.
$ git remote add origin 원격저장소주소
“원격저장소주소”에는 원격 저장소의 URL을 입력합니다. `git remote add` 명령어를 실행하여 원격 저장소를 연결할 수 있습니다.
원격 저장소에 코드 업로드하기
로컬에서 작업한 코드를 원격 저장소에 업로드하려면 다음 명령어를 사용합니다.
$ git push -u origin 브랜치명
“브랜치명”에는 업로드할 코드의 브랜치 이름을 입력합니다. `git push` 명령어를 실행하여 코드를 원격 저장소에 업로드할 수 있습니다. `-u origin` 옵션을 사용하여 원격 저장소와 연결된 로컬 브랜치를 지정할 수 있습니다.
원격 저장소에서 코드 가져오기
원격 저장소에서 최신 코드를 가져오려면 다음 명령어를 사용합니다.
$ git pull origin 브랜치명
“브랜치명”에는 가져올 코드의 브랜치 이름을 입력합니다. `git pull` 명령어를 실행하여 원격 저장소에서 최신 코드를 가져올 수 있습니다.
원격 저장소 목록 확인하기
원격 저장소의 목록을 확인하려면 다음 명령어를 사용합니다.
$ git remote -v
`git remote -v` 명령어를 실행하면 원격 저장소의 URL을 확인할 수 있습니다. `-v` 옵션을 사용하여 상세 정보를 표시할 수 있습니다.
9. 태그 관리하기
Git을 사용하여 태그(tag)를 관리하는 방법을 설명합니다.
태그 추가하기
Git 저장소에 태그를 추가하려면 다음 명령어를 사용합니다.
$ git tag 태그명
“태그명”에는 추가할 태그의 이름을 입력합니다. `git tag` 명령어를 실행하여 태그를 추가할 수 있습니다. 기본적으로 태그는 가장 최신 커밋에 붙게 됩니다.
태그 목록 확인하기
태그의 목록을 확인하려면 다음 명령어를 사용합니다.
$ git tag
`git tag` 명령어를 실행하면 저장소에 있는 모든 태그의 목록을 확인할 수 있습니다.
특정 커밋에 태그 추가하기
특정 커밋에 태그를 추가하려면 커밋 해시를 지정하여 다음 명령어를 사용합니다.
$ git tag -a 태그명 커밋해시
“태그명”에는 추가할 태그의 이름을 입력하고, “커밋해시”에는 태그를 추가할 커밋의 해시값을 입력합니다. `-a` 옵션을 사용하여 주석과 함께 태그를 추가할 수 있습니다.
태그 삭제하기
저장소에서 태그를 삭제하려면 다음 명령어를 사용합니다.
$ git tag -d 태그명
“태그명”에는 삭제할 태그의 이름을 입력합니다. `git tag -d` 명령어를 실행하여 태그를 삭제할 수 있습니다.
원격 저장소에 태그 업로드하기
로컬에서 추가한 태그를 원격 저장소에 업로드하려면 다음 명령어를 사용합니다.
$ git push origin 태그명
“태그명”에는 업로드할 태그의 이름을 입력합니다. `git push origin` 명령어를 실행하여 태그를 원격 저장소에 업로드할 수 있습니다.
특정 태그에서 커밋 확인하기
특정 태그에서 어떤 커밋을 확인하려면 다음 명령어를 사용합니다.
$ git show 태그명
“태그명”에는 확인할 태그의 이름을 입력합니다. `git show` 명령어를 실행하면 해당 태그의 커밋 정보를 확인할 수 있습니다.
10. Git 도구와 확장 기능 활용하기
Git 작업을 보다 효율적으로 수행하기 위해 Git 도구와 확장 기능을 활용하는 방법을 설명합니다.
Git GUI 도구
Git GUI 도구는 그래픽 사용자 인터페이스(GUI)를 제공하여 Git 작업을 시각적으로 수행할 수 있게 해줍니다. 대표적인 Git GUI 도구로는 GitKraken, SourceTree, GitHub Desktop 등이 있습니다.
Git GUI 도구를 사용하면 커밋, 브랜치, 태그 등을 시각적으로 관리하고 변경 사항을 쉽게 확인할 수 있습니다.
Git 명령어 확장 기능
Git 명령어 확장 기능은 Git 작업을 보다 편리하게 수행할 수 있도록 추가 기능을 제공해줍니다. 대표적인 Git 명령어 확장 기능으로는 Git Alias와 Git Hook이 있습니다.
Git Alias
Git Alias는 Git 명령어를 단축어로 정의하여 간편하게 사용할 수 있게 해줍니다. 예를 들어, `git status` 명령어를 `git s`로 대신 사용할 수 있습니다.
다음은 Git에 `st`라는 단축어로 `status` 명령어를 등록하는 예시입니다.
$ git config --global alias.st status
`git config –global alias.st status` 명령어를 실행하여 `status` 명령어에 `st`라는 별칭을 등록할 수 있습니다. 이후에는 `git st` 명령어를 사용하여 `git status` 명령어를 실행할 수 있습니다.
Git Hook
Git Hook은 Git 작업에 자동으로 특정 스크립트를 실행할 수 있도록 해줍니다. 예를 들어, 커밋을 할 때마다 자동으로 테스트 스크립트를 실행하거나 코드 스타일 검사를 할 수 있습니다.
Git Hook을 사용하려면 `.git/hooks` 디렉토리에 스크립트를 추가하고 실행 권한을 부여해야 합니다. 예를 들어, `pre-commit` Hook을 사용하여 커밋하기 전에 테스트 스크립트를 실행하려면 다음과 같이 합니다.
$ cd 프로젝트디렉토리/.git/hooks
$ touch pre-commit
$ chmod +x pre-commit
`pre-commit` 파일을 생성한 후 실행 권한을 부여하고, 스크립트를 작성하여 원하는 동작을 수행할 수 있습니다.