[git / Sourcetree] Mac에서 git과 Sourcetree 사용하기
이번 포스팅은 macOS 환경에서
git과 sourcetree를 다운로드하여 사용하는 포스팅입니다.
Iterm2 다운로드
맥에서 자주 사용하는 터미널를 다운로드한다. 기본 내장 터미널을 사용해도 된다.
zsh 설치 (선택)
iterm 사용시 시각적으로 편하게 터미널을 사용할 수 있게 해 준다.
또한 여러 가지 플러그인이나 추가 기능을 붙여서 좀 더 편리하게 이용할 수 있다.
# brew 설치
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
# zsh 설치
$ brew install zsh
# Oh my ZSH
$ sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
Mac에 git 설치 및 버전 확인
깃 공식 페이지에 따르면, 10.9 버전부터는 Terminal에 처음으로 git을 실행하는 것으로 설치가 시작된다.
깃 설치 후에는 아래와 같은 명령어로 깃 버전을 확인할 수 있다.
$ git --version
SourceTree 다운로드
소스트리는 Atlassian에서 개발한 GUI 툴로써, 사용자가 git을 좀 더 쉽고 편하게 사용할 수 있도록 하는 프로그램이다.
> 소스트리 사이트에 접속해서 Download for Mac OS를 클릭하여 소스트리를 다운로드한다.
git 기본 설정 파일
git config 파일로 기본 설정을 확인하고, 추가할 수 있다.
# 터미널에서 git config 확인
$ git config --list
> 종료하고 싶을 때는 q를 입력하면 된다.
# git config 파일을 vscode에서 확인 할 수 있도록 설정한다.
$ git config --global core.editor "code --wait"
# 아래 명령어 입력시 자동으로 vscode가 열린다.
$ git config --global -e
> git config를 터미널이 아닌 vscode에서 볼 수 있게 한다.
> Mac에 vscode가 설치되어있지 않다면 아래 포스팅을 참고해서 설치할 수 있다
soyoung-new-challenge.tistory.com/84
$ git config --global core.autocrlf input
> 위 설정을 하면, 각 운영체제에서 발생되는 줄 바꿈 문자열 문제를 방지할 수 있다.
> window는 줄 바꿈 시 \r\n, mac은 \n이 사용된다.
깃 init 및 기본 명령어
# 우선 프로젝트를 생성한다.
$ mkdir projects
# 깃을 초기화한다.
$ git init
# .git 폴더가 생성되었는지 확인
$ ls -al
# 터미널에서 아래 명령어를 사용해서 직접 폴더를 열어서 확인
$ open .git
# git 프로젝트 삭제
$ rm -rf .git
Git workflow
Working Directory
즉, 프로젝트 파일들을 수정하고 작업하는 공간을 말한다.
tracked, untracked로 나뉜다.
tracked은 또다시 unmodified와 modified로 나뉘어있다.
결국, tracked 파일 중에서 modified 영역의 파일만 다음 단계인 staging area로 갈 수 있다.
Staging Area
버전 히스토리에 저장할 준비가 되어있는 파일을 옮겨놓는 곳
이곳에 있는 파일들은 git commit 명령어를 통해 git directory로 보내질 수 있다.
Git Directory
버전의 히스토리를 가지고 있는 곳
checkout이라는 명령어를 사용하여 언제든 원하는 버전으로 돌아갈 수 있다.
Remote Git Directory
보관의 안정성을 위해 github와 같은 remote server에 저장한다.
push 명령어를 이용해 remote git directory에 업로드할 수 있다.
또한 pull 명령어를 이용해 다시 로컬로 가져올 수 있다.
자주 사용하는 명령어
우선 project폴더 안에 테스트를 위한. txt 파일들을 생성한다.
git status
$ git status
> 위 명령어를 입력하면 현재 파일들의 상태를 확인할 수 있다.
> On branch master : 현재 master branch
No commit yet : 현재까지 커밋은 없다.
Untracked files : 아직 tracked 되지 않은 파일들
( git add <file>... : 이 명령어를 사용하여 commit을 위한 파일로 포함시킬 수 있다.)
$ git status -s
> git status를 간략하게 보기 위해서는 위 명령어와 같이 -s 옵션을 붙인다.
git add
# a.txt 파일만 추가
$ git add a.txt
# *.txt로 끝나는 모든 파일 추가
$ git add *.txt
# 모든 파일 추가
$ git add *
> 위 명령어를 사용하여, untracked 상태였던 파일을 tracked 상태로 바꿀 수 있다.
> 파일이 준비가 되어 staging area로 옮기기 위해 확인하는 작업이다.
git add 명령어 이후에 파일이 수정이 된다면, 아래와 같이 modified 상태의 not staged 인 파일을 확인할 수 있다.
이 경우 다시 git add 명령어를 사용하여 다시 커밋할 준비를 하면 된다.
Soucetree를 사용하여 UI로 편하게 확인할 수도 있다.
> tracked file과 untracked file을 한눈에 확인할 수 있다.
git --rm
현재 staging area에 올라간 파일을 모두 삭제하는 명령어
tracked 된 모든 파일이 다시 untracked files 상태로 변경된다.
$ git rm --cached *
git diff
변경 히스토리를 알고자 할 때 사용한다.
# working directory에 있는 변경 사항만 확인 가능하다.
$ git diff
# staging area에 있는 변경 사항을 확인하고 싶을 때
$ git diff --staged
> 위 명령어를 사용하면 터미널에서 변경 히스토리를 확인할 수 있다.
$ git config --global -e
> 위 명령어를 사용하여 vscode로 git config파일로 접근한다.
> git config 파일에 아래와 같이 4줄을 추가한다.
$ git difftool
> 설정을 마친 뒤, 위 명령어를 입력하면 변경사항을 vscode로 확인할 수 있다.
git commit
$ git commit -m "[커밋 메세지]"
> 이 명령어를 사용하여 staging area에 있는 파일을 git directory로 옮기게 된다.
> git commit 시 -m 옵션을 사용하여 commit message를 입력한다.
$ git commit -am "[커밋메세지]"
> 위 명령어는 git add 명령어 없이 한 번에 커밋하게 된다.
git log
깃 커밋 히스토리를 확인할 수 있다.
$ git log