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프로젝트경로
본인의 프로젝트 경로를 안전한 경로로 등록하는 명령어입니다.