Sourcetree 기본 사용법

yoondgu·2022년 5월 11일
0

버전 관리

목록 보기
1/4

생활코딩 GIT2 - SourceTree 강의를 들으며 작성함

SourceTree


소스트리는 GUI를 이용해 git의 사용을 보다 편하게 할 수 있도록 도와주는 프로그램이다.
Command Line으로 CLI 방식의 git 버전관리를 할 수 있는 것처럼,
소스트리와 같이 GUI방식으로 git 버전관리를 할 수 있도록 해주는 제품들이 있다.

소스트리가 git에게 명령 전달을 하고 git에서 버전 데이터를 가져오는 등의 중재자 역할을 하는 것이다.

📌 Git Workflow

소스트리를 사용하기 전에 git의 워크플로우를 다시 한 번 되짚고 가자.

(이미지 출처 : https://velog.io/@lucasonestar/Git-work-flow-Fundamental-Command)


로컬 저장소(Local Repository) 생성


  1. Sourcetree에서 file-clone/new 선택
  2. create repository
  3. browse - 원하는 디렉토리 선택 (관리하고 싶은 파일이 저장되어 있는 장소)
    • 새로 만드는 것이라면 탐색기에서 폴더를 만들고, 이미 존재하는 폴더라면 그것을 선택한다.
  4. 이제 해당 폴더에 버전 관리를 해주고, 관련 데이터가 저장되는 .git 폴더가 생겼다.
    이것을 git directory, 또는 repository라고 한다.

이제 이 장소에 있는 파일들이 생성 및 변경되면 소스트리가 감지해서, add와 commit을 하라고 알려줄 것이다.


버전 생성


  1. 데스크톱에서 git이 관리하고 있는 저장소의 파일을 변경했을 때,

    소스트리 WorkSpace의 File Status에 새로 add해야 할 파일이 올라온다.

    • 하나의 버전에는 여러 개의 파일이 올라갈 수 있다.
  2. commit할 파일들을 선택해 stage로 올린다.

  3. 입력 창에 내용을 작성하고 커밋하면 버전이 생성된 것이다.

  4. History에서 commit 상태 및 이력을 확인할 수 있다.

    커밋되지 않은 변경사항이 생긴 경우에 History에서도 이를 확인할 수 있다.

💡 원하는 파일만을 스테이지로 올려 커밋하여 버전을 쪼개서 관리하는 것을 잘 활용하자.


버전 관리의 다양한 기능


📌 Reset (삭제하며 이전 버전으로 돌아가기)

Reset은 저장소의 상태를, ‘선택한 버전의 상태’로 돌리는 것이다.
여러 차례 커밋을 한 상태에서, 과거의 버전 상태로 되돌아가고자 할 때 사용한다.

  • Reset Using mode
    • soft - keep all local changes
    • hard - discard all working copy changes (가장 단순하지만, 위험한 작업)
    • mixed - keep working copy but reset index

hard mode로 reset을 하면, 로컬 저장소의 파일 내용이 선택한 버전이었을 때의 시점으로 돌아간다.
즉 그 이후의 변경 내용은 모두 완전히 삭제하면서 원하는 버전으로 돌아가는 것이다.

💡 이미 원격 저장소에 업로드된 작업은 reset하면 안된다.

📌 Revert (삭제하지 않고 이전 버전으로 돌아가기)

Revert는 버전 기록을 훼손하지 않고, ‘선택한 버전의 이전 상태’로 돌리는 것이다.
Reset보다 훨씬 권장되는 방식이다.

’선택한 버전의 이전 상태’와 같이 파일의 내용을 변경시켜주고, 그런 내용을 가진 새로운 버전이 자동으로 생성(커밋)된다.
(+50000을 했던 기록을 삭제하지 않고, -50000을 추가하는 것과 같은 원리)
만약 version3을 선택하여 revert를 했다면, version3 이후의 모든 내용을 없애는 게 아니라,
version3에 대한 revert만 하는 것이다.

💡 revert는 역순으로 한 단계씩 해주어야 오류가 나지 않는다. 어려운 개념이므로 추후 필요할 때 다시 공부하기.

📌 HEAD로 시간여행하기

소스트리의 history에서 버전을 더블클릭하면, head가 해당 버전을 가리키면서,
버전 정보에 대한 아무런 변경과 삭제 없이도 로컬 저장소의 파일이 해당 버전의 상태로 변한다.

원래 상태로 돌아오려면 다시 branches의 master를 눌러주면 된다.


원격 저장소와 연결하기


  1. 원격 저장소로 사용할 repository를 github에서 만든다.

  2. 생성된 github repository의 주소를 복사해 소스트리 repository settings에서 remotes에 add한다.

    이 때, remote name을 지정해 저장소들을 구분한다.

    git에서는 이 이름을 origin으로 약속하고 있기 때문에 default remote 칸에 체크해주면 된다.


지금은 노션과 velog를 주 기록저장소로 사용하고 있는데,
아카이빙할 양이 많아지거나 코드 기록의 비중이 커질 것을 고려하면 깃과 깃허브를 보다 더 제대로 활용하는 게 좋지 않을까 생각이 든다.
기본적인 기능과 사용 강의 뿐만 아니라 실제로 어떻게 활용하면 가장 효과적일지도 더 공부해봐야겠다.

0개의 댓글