SourceTree 설치 / GUI 툴 소스트리에서 Git 사용법

SourceTree 설치

https://www.sourcetreeapp.com
소스트리 설치 시 Bitbucket 선택 창에서 건너뛰기를 누르고, Mercurial 체크를 해제해야 합니다.
Git에 Push 할 사용자명, 이메일주소 입력 후 SSH 키 선택 창에서 아니오를 선택합니다.


소스트리 사용법

프로젝트에 Git 저장소 생성 방법

상단 + 탭 > Create > 목적지 경로: 탐색하여 프로젝트 폴더 선택 > 저장소명 입력 > 생성
Git 연결 정보가 없는 프로젝트에 .git 폴더를 생성하는 방법입니다.

프로젝트 Git 연결 불러오기

상단 + 탭 > Add > 작업 경로: 탐색하여 프로젝트 폴더 선택 > 추가
프로젝트에 연결되어 있는 Git 저장소 탭을 생성하는 방법입니다.

Git 연결 탭 이름 변경

상단 + 탭 > Local > Git 로컬 저장소 선택 후 F2 > 이름 변경 후 엔터

Git Fetch 방법

패치 > 모든 원격 저장소에서 가져오기 체크 후 확인

Git Pull 방법

Fetch > 내려받을 커밋이 있는 브랜치로 체크아웃 > Pull > 가져오기 위한 원격 브랜치 선택 > 충돌이 없으면 묶어서 바로 커밋 체크 > Pull

Pull 충돌 시 해결 방법
Git Stash 후 Pull 받고 Unstash 하면 됩니다.

Git Stash 방법

커밋하지 않은 변경사항 확인 > 상단 스태시 버튼 클릭 > stash명 입력 > 확인

Git Unstash 방법

좌측 스태시 메뉴 선택 > stash명 우클릭 > 스태시 적용 > 확인

Git Commit 방법

좌측 브랜치 선택 > 커밋하지 않은 변경사항 Row 선택 > 하단 스테이지에 올라가지 않은 파일 중 커밋할 파일 선택 > 선택 내용 스테이지에 올리기 > 스테이지에 올라간 파일 목록 확인 > 커밋 > Push

Git 브랜치 복제 방법

복제하려는 브랜치로 체크아웃 > 상단 브랜치 메뉴 선택 > 새 브랜치 > 브랜치명 입력 > 브랜치 생성

Git 브랜치 체크아웃 방법

좌측 브랜치 메뉴 선택 > 브랜치명 우클릭 > 체크아웃 > 확인

현재 브랜치 확인
좌측 브랜치 메뉴에서 브랜치명 왼쪽에 활성화된 아이콘이 있으면 현재 체크아웃하여 위치한 브랜치입니다.

Git 커밋 체리픽 방법

패치 > Pull > 체리픽 받을 브랜치로 체크아웃 > 좌측 브랜치 메뉴에서 다른 브랜치 선택 > 체리픽 할 커밋 우클릭 > 체리픽 > 확인 > Push

Git 체리픽 사용 이유
개발서버 반영용 dev 브랜치에 커밋한 작업을 운영서버 반영용 main 브랜치에 반영할 때,
Merge 기능을 써버리면 운영서버에 반영되면 안 되는 커밋까지 전부 반영되기 때문에 운영서버에 반영할 커밋만 하나씩 선별하여 체리픽으로 반영해야 합니다.

체리픽 시 충돌 해결
다른 사람이 올려둔 HEAD 소스는 최대한 그대로 유지하고, 본인이 수정한 코드를 통합하여 커밋해야 합니다.

Git 브랜치 병합 방법

병합 받으려는 브랜치로 체크아웃 > 병합 하려는 브랜치 우클릭 > 현재 브랜치로 ‘브랜치명’ 병합
충돌이 발생하면, 직접 수정하여 충돌을 해결하고 커밋해야 병합이 완료됩니다.

브랜치 merge 충돌 이유
같은 파일, 같은 부분을 다르게 변경하고 merge 하는 경우, 충돌이 발생합니다.

Git 원격 브랜치 가져오기

저장소 > 체크아웃 > 새 브랜치 체크아웃 > 체크아웃할 원격 브랜치 선택 > 확인
원격 브랜치가 추가되어도 자동으로 pull 받지 않기 때문에 로컬 소스트리에 직접 추가해야 합니다.

특정 커밋 시점으로 Git 원격 브랜치 커밋 되돌리기

작업중이던 소스 스태시 > 되돌리려는 브랜치 체크아웃 > 되돌아가고 싶은 커밋 시점 우클릭 > 이 커밋까지 현재 브랜치를 초기화 > 사용 중인 모드 : Mixed - 작업 상태는 그대로 두지만 인덱스는 리셋 선택 > 확인 > (새로 생긴 변경된 소스 폐기하고, Pull 개수 무시하고) Push > 푸시할 브랜치 체크 > 강제 푸시 체크 > Push > 예

강제 푸시 중 에러나는 경우
상단 도구 메뉴 > 옵션 > Git > 강제 푸시 기능 체크 > 확인

강제 Push 된 브랜치 받는 방법
기존 로컬 브랜치 삭제 후 원격 브랜치를 다시 받으면 됩니다.

Git 원격 브랜치 일부 커밋 취소

작업중이던 소스 스태시 > 되돌리려는 브랜치 체크아웃 > 되돌리고 싶은 커밋 우클릭 > 커밋 되돌리기 > 충돌 수동으로 잡고 커밋 > Revert 커밋 Push

Git 원격 브랜치 다시 받기

좌측 브랜치 메뉴 > 다른 로컬 브랜치로 체크아웃 > 로컬 브랜치 우클릭 > 브랜치명 삭제 > 좌측 원격 메뉴 > origin > 원격 브랜치 우클릭 > 체크아웃 origin/브랜치명 > 확인

로컬 브랜치 강제 삭제 방법
cmd 창에서 프로젝트 폴더로 이동 후 아래 명령어를 실행하면 됩니다.

git branch -D 로컬브랜치명

원격 브랜치명 변경 방법

로컬 브랜치명 변경 > 신규 브랜치 push > 원격 저장소에서 기존 브랜치 삭제

작업중 소스 폐기

상단 폐기 메뉴 > 파일 변경사항 폐기 > 폐기하려는 파일 체크 > 변경사항 폐기

일부 코드 폐기

커밋 메뉴 또는 커밋하지 않은 변경사항 클릭 > 우측 변경된 코드 줄 다중 클릭 > 줄 버리기

폴더 및 파일 경로 확인

커밋 메뉴 또는 커밋하지 않은 변경사항 클릭 > 하단 파일 목록에서 파일명 우클릭 > 프로젝트 URL을 클립보드로 복사

퍼블리싱 html 파일 브라우저로 열기

커밋 히스토리 클릭 > 하단 html 파일 더블 클릭

커밋 히스토리 검색

커밋 히스토리를 검색할 브랜치로 이동 > 좌측 Search 메뉴 > 상단 인풋에 커밋 메시지 검색 > 커밋 더블클릭 시 전체 로그에서 포커싱
상단 인풋 오른쪽 selectbox를 작성자로 변경하면, 커밋한 사람 ID로도 검색 가능합니다.

긴 파일 소스 비교

소스비교 창 우측 상단 톱니바퀴 아이콘 > 외부 비교도구

소스트리 외부 비교도구 설정 방법
상단 도구 > 옵션 > 비교 > 외부 비교 도구 : 윈도우에 설치된 WinMerge 선택 > 확인


소스트리 에러 해결

소스트리 실행이 안 되는 경우

C:\Users\사용자명\AppData\Local\Atlassian\SourceTree.exe_Url_암호화폴더명\버전명

위 폴더의 Composition.cache 파일 삭제 후 재실행하면 됩니다.
암호화 폴더가 여러개라면, 하나씩 삭제하면서 실행이 되는지 확인하면 됩니다.

소스트리 실행 시 에러 팝업 해결

fatal: detected dubious ownership in repository at 'D:/Git프로젝트경로'
'D:/Git프로젝트경로' is owned by:
          'S-1-5-32-544'
but the current user is:
          'S-1-5-21-1534336769-1475436762-3714419067-1001'
To add an exception for this directory, call:
git config --global --add safe.directory D:/Git프로젝트경로

위와 같은 에러가 뜨는 경우, 소스트리 종료 후 cmd 아무 경로에서 아래의 명령어를 입력하면 해결됩니다.

git config --global --add safe.directory D:/Git프로젝트경로

본인의 프로젝트 경로를 안전한 경로로 등록하는 명령어입니다.

Leave a comment