이번에는 CLI에서 직접 명령어를 입력하던 방식에서 벗어나, GUI 환경에서 Git을 사용하는 방법을 정리해보았다. SourceTree는 Git 명령어를 버튼과 화면으로 시각적으로 다룰 수 있게 해주는 도구이고, GitHub는 로컬 저장소를 원격으로 관리하고 협업할 수 있게 해주는 서비스이다. 앞서 CLI로 Git의 기본 개념을 익혔다면, 이번에는 같은 작업을 SourceTree와 GitHub에서 어떻게 수행하는지 중심으로 살펴보았다.
git에 대한 기본 개념은 13일차에서 대부분 다루었으므로 이번에는 git을 source tree에서 어떻게 사용하는지만 정리해보려고 한다.
Sourcetree | Free Git GUI for Mac and Windows
A Git GUI that offers a visual representation of your repositories. Sourcetree is a free Git client for Windows and Mac.
www.sourcetreeapp.com
sourcetree는 위 링크에서 다운로드 받을 수 있다.
목차
1. 커밋하기
2. 커밋 해시와 태그
3. 버전 되돌리기
4. stash
5. branch
6. merge
7. 원격저장소와의 네 가지 상호작용
8. github와 sourcetree 연결
9. cli로 github 연결
처음 다운로드 받게 되면 회원가입이 필요한데, 나는 구글로 회원가입 후 로그인 해주었다.
1. 커밋하기






로컬 저장소 생성을 눌러 sourcetreePrac 디렉터리를 만든 뒤, 파일 하나를 생성했다.
파일을 생성하고 내용을 입력하면 파일 상태 영역에 a.txt가 올라온 것을 확인할 수 있다. 맥북에서는 해당 파일을 체크박스로 선택한 뒤, 커밋 메시지를 입력하고 커밋 버튼을 누르면 된다. 커밋이 완료되면 파일 상태 영역에서는 목록이 사라지고, 히스토리에서는 방금 커밋한 내용을 확인할 수 있다.
이후 a.txt를 두 번 더 수정하여 커밋하고, b.txt 파일도 새로 생성하면 아래와 같은 화면을 확인할 수 있다.

현재 master(main) 브랜치는 b commit 위치를 가리키고 있다.
또한 히스토리에서 각 커밋을 클릭하면, 해당 커밋 시점에 저장된 내용을 확인할 수 있다.
2. 커밋 해시와 태그


SourceTree에서는 히스토리에서 원하는 커밋을 선택한 뒤 태그 기능을 사용해 쉽게 태그를 추가할 수 있다. 태그를 붙이고 싶은 커밋을 클릭한 후 태그 추가 메뉴를 열고, 태그 이름을 입력하면 해당 커밋에 태그가 생성된다.

이후 히스토리에서 a_tag라는 이름의 태그가 생성된 것을 확인할 수 있다. 또한 태그 삭제도 비슷한 방식으로 진행할 수 있다.
SourceTree에서는 히스토리에서 커밋을 선택해 각 버전의 변경 내용을 비교할 수 있다. 커밋을 클릭하면 어떤 파일이 수정되었는지와 변경된 내용을 화면에서 바로 확인할 수 있다.
3. 버전 되돌리기


커밋 되돌리기를 누르면 revert가 실행되고, 해당 커밋을 취소하는 새로운 커밋이 생성된 것을 확인할 수 있다.
4. stash


커밋하지 않은 수정 파일이 있다면 상단의 스태시 기능을 눌러 변경 내용을 임시로 옮겨둘 수 있다.
또한 스태시를 다시 적용하거나 삭제하는 작업도 할 수 있다.
5. branch
SourceTree에서는 상단의 브랜치 버튼을 눌러 새 브랜치를 생성할 수 있다. 이때 브랜치 이름과 기준이 되는 브랜치를 선택하면 된다. 이후 원하는 브랜치 이름을 클릭해 체크아웃을 실행하면 해당 브랜치로 이동할 수 있다. 체크아웃 후에는 현재 작업 브랜치도 함께 변경된다.




6. merge


브랜치 옆의 Merge 버튼을 이용하면 브랜치를 병합할 수 있다. 병합이 완료되어도 foo 브랜치가 자동으로 삭제되지는 않으므로, 더 이상 필요하지 않다면 직접 삭제해주면 된다.
SourceTree에서도 마찬가지로 빠른 병합(Fast-forward merge) 과 일반 병합이 가능하다. 빠른 병합은 한쪽 브랜치만 앞으로 진행된 경우에 발생하며, 새로운 병합 커밋 없이 브랜치 위치만 앞으로 이동한다. 반면 일반 병합은 두 브랜치가 각각 따로 커밋을 쌓은 상태에서 병합하는 경우로, 오른쪽 사진처럼 그래프가 바깥으로 갈라졌다가 병합하게 되면 다시 합쳐지는 형태로 표시된다.
일반 병합을 하려면 먼저 결과를 받을 브랜치, 즉 master(main) 브랜치로 이동해야 한다. 이후 foo 브랜치를 우클릭한 뒤 master 브랜치로 병합을 선택하면 일반 병합이 수행된다. 이 경우에는 두 브랜치의 내용을 합친 새로운 병합 커밋이 생성된다.

7. 원격 저장소와의 네 가지 상호작용
Git과 GitHub를 함께 사용할 때 자주 보는 명령어가 clone, push, fetch, pull이다. 이 명령어들은 모두 로컬 저장소와 원격 저장소 사이에서 데이터를 주고받을 때 사용된다.
clone
clone은 원격 저장소를 내 컴퓨터로 그대로 복사해오는 명령어이다.
즉, GitHub에 이미 만들어져 있는 저장소를 내 로컬 환경으로 가져와 작업을 시작할 때 사용한다.
push
push는 내 로컬 저장소에서 커밋한 내용을 원격 저장소로 올리는 명령어이다.
즉, 내 컴퓨터에서 작업한 내용을 GitHub에 업로드하는 과정이다.
fetch
fetch는 원격 저장소의 최신 변경 사항을 가져오지만, 내 작업 브랜치에 바로 반영하지는 않는 명령어이다.
즉, GitHub에 어떤 변화가 있는지 먼저 가져와서 확인만 하고, 아직 내 작업 파일에는 적용하지 않는 방식이다.
pull
pull은 원격 저장소의 변경 사항을 가져오고, 그 내용을 현재 로컬 브랜치에 바로 반영하는 명령어이다.
즉, fetch와 merge가 합쳐진 개념으로 이해하면 된다.
8. github와 sourcetree 연결
SourceTree와 GitHub를 연결하는 방식에는 크게 두 가지가 있다.
- HTTPS : GitHub 계정과 인증 정보만 있으면 비교적 쉽게 연결할 수 있다.
- SSH : 접속할 각 PC에서 SSH 키를 생성한 뒤, 해당 공개키를 GitHub에 등록하여 인증하는 방법이다.


SSH 방식은 PC마다 키를 따로 설정해야 해서 초반에는 다소 번거롭게 느껴질 수 있다. 따라서 이번에는 더 간단한 HTTPS 방식으로 GitHub와 SourceTree를 연결해보았다.
먼저 GitHub에 로그인한 뒤, 아래 경로로 이동해 Personal Access Token을 생성한다.
Settings > Developer settings > Personal access tokens > Tokens (classic) > Generate new token (classic)
이후 토큰 생성 화면에서 Note를 입력하고, 권한은 repo 항목을 체크한 뒤 Generate token을 눌러 토큰을 발급받는다.
토큰이 생성되면 해당 값을 복사해둔다. 이후 SourceTree에서 원격 저장소를 생성하거나 GitHub 계정을 추가하는 과정에서 이 토큰을 인증 정보로 입력하면 GitHub 계정을 연결할 수 있다.





clone을 실행하면 GitHub에 올라와 있는 원격 저장소가 로컬로 다운로드된다. 이후 로컬에서 파일을 생성하고 커밋한 뒤 push를 수행하면 변경 내용을 GitHub로 올릴 수 있다. push 과정에서는 로그인 또는 키체인 암호 입력을 요청할 수 있는데, 맥북에서는 보통 사용자 암호를 입력하면 인증이 완료된다.
정상적으로 push가 완료되면 main 브랜치와 origin/main 브랜치가 나란히 표시된 것을 확인할 수 있다. 이는 로컬 브랜치와 원격 브랜치가 같은 커밋 위치를 가리키고 있다는 의미이다. 또한 GitHub 저장소 화면에서도 a.java 파일이 정상적으로 업로드된 것을 확인할 수 있다.

로컬에서만 커밋하고 push 하지 않으면 main 브랜치가 origin/main 보다 위에 오게 된다.
9. cli로 github 연결
1) github 연결

GitHub에서 새로운 repository를 처음 생성하면, 위와 같이 CLI에서 원격 저장소를 연결하는 방법이 안내된다. 이 안내문은 현재 상황에 따라 새 저장소를 처음부터 올리는 방법과 이미 로컬에 있는 저장소를 GitHub에 연결하는 방법으로 나뉘어 있다.
만약 로컬에서 이미 Git 작업을 하고 있던 프로젝트를 GitHub와 연결하고 싶다면, 아래 명령어를 사용하면 된다.
| git remote add origin 저장소주소 git branch -M main git push -u origin main |
각 명령어의 의미는 다음과 같다.
git remote add origin 저장소주소
로컬 저장소에 GitHub 원격 저장소를 origin이라는 이름으로 등록한다.
git branch -M main
현재 브랜치 이름을 main으로 변경한다.
git push -u origin main
현재 main 브랜치를 원격 저장소 origin에 업로드한다. 이때 -u 옵션을 사용하면 이후부터는 git push, git pull만으로도 같은 원격 브랜치와 연결해서 사용할 수 있다.
즉, 이 과정은 로컬 저장소와 GitHub 원격 저장소를 연결한 뒤, 현재 작업 내용을 GitHub에 처음 올리는 과정이라고 볼 수 있다.
만약 아직 로컬 저장소 자체도 만들지 않은 상태라면, GitHub 안내문에 나온 것처럼 git init, git add, git commit부터 진행한 뒤 원격 저장소를 연결하면 된다.
2)GitHub와의 상호작용 4가지
git clone 저장소주소 - 원격 저장소를 처음 로컬로 복사해올 때 사용
git push - 로컬 커밋 내용을 원격 저장소로 업로드할 때 사용
git push -u origin main - 원격 저장소에 처음 업로드하면서 로컬 브랜치와 원격 브랜치를 연결할 때 사용 (push 최초 연결)
git fetch - 원격 저장소의 변경 내용을 가져오기만 할 때 사용
git pull - 원격 저장소의 변경 내용을 가져와 로컬에 바로 반영할 때 사용
'멀티캠퍼스' 카테고리의 다른 글
| [2026.04.20] TIL - 16일차 반복문 활용과 배열 (1) | 2026.04.21 |
|---|---|
| [2026.04.18]TIL - 15일차 Java (제어문) (1) | 2026.04.20 |
| [2026.04.15]TIL - 13일차 Git (2) | 2026.04.19 |
| [2026.04.14]TIL - 12일차 Java 변수와 메모리 구조, 메소드, 연산자 정리 (0) | 2026.04.14 |
| [2026.04.13]TIL - 11일차 Java 설치 & 변수와 입력, 상수 정리 (4) | 2026.04.13 |