▩ 목 차 ▩
1. 소스트리란 ?
1-1. 소스트리 기능
1-2. 소스트리를 사용하는데 필요한 용어
1-3. 소스트리를 이용한 Github 협업 방법
저번에 Git Branch에 배웠었고, 이것은 여러 사람이 동일한 소스코드를 기반으로 서로 다른 작업을 할 수 있게 만들어주는 기능이다.
즉, 브랜치(분기)를 만들어 각자의 파트에서 기능을 완성하고 하나로 병합(Merge)하여 협업을 한다.
그렇다면 Git Branch를 사용하기 위해서는 접근하기 어려운 터미널(쉘)환경을 써야 할텐데... 혹시 쉽게 접근 가능하여 생성 및 관리를 할 수 있고 보기 쉽게 해주는 GUI Tool이 있을까?
==> 많은 Git을 형상관리를 해주는 많은 GUI 툴이 있지만, 나는 그 중에 sourcetree에 대해 공부하고 사용해 보겠다.
■ 1. 소스트리란 ? ■
git / git lab / git hub에 관리되는 소스들을 더 쉽게 접근하기 위한 GUI 툴이다.
■ 1-1. 소스트리 기능
- 소스 형상관리 기능
- 협업 가능
- 브랜치 원격
- 원격 로컬 가능
- 테스트 유닛 만들기
- 푸쉬 가능
■ 1-2. 소스트리를 사용하는데 필요한 용어
Repository
흔히 프로젝트 저장소 라고 하는데, 앞으로 진행 될 모든 소스들은 이 곳에 저장된다고 생각하면 된다.
Repository는 크게 2개로 나뉘어 진다.
1) Local
원격을 제외한 현재 저장소 = 개인이 작업하고있는 컴퓨터에 저장되어있는 공간
2) Remote
원격 저장소 = 네트워크상에 존재하고있는 저장소를 말한다.
Refresh
새로고침 (단축키: F5)
이번 버전에선 간혹 바로 변경사항이 적용안되는 경우가 있을 땐 F5를 누르면 된다.
commit
파일 및 폴더의 추가 및 변경 사항을 버전화하여 Repository에 기록하는 것
Pull
Pull을 하게되면 Remote Repository(원격 저장소)에 있는 소스를 개인 Local REpository(로컬 저장소)로 가지고 오게됨
순서: fetch-> pull
Push
푸쉬를 하게되면 로컬저장소에 있는 소스가 원격 저장소에 올라가짐
순서: commit -> push
Fetch
꺼내다, 가지고오다, 호출하다 라는 의미로 Fetch (페치)를 눌렀을 시,
원격서버(Repository)에서 정보를 가져오지만 merge는 하지 않는다.
인터넷창에서 새로고침 (F5) 라고 생각하면 된다.
Branch
소스나무(SourceTree)인만큼 여러갈래로 브랜치가 뻗어 나가는걸 상상할 수 있을 것이다.
그런의미의 브랜치로 소스를 작성하다보면 A라는 작업을 할 수도있고 도중에 A작업이 다 끝나지 않았는데 B작업을 새로 시작할 수도있고 급하게 또다를 C작업을 할 수도있고 A 와 B 작업을 합칠 수도있고 등등 여러가지 상황이 발생하게 된다. 이럴 때 소스트리는 Branch를 사용해서 어떤 작업인지 명시하고 그 Branch 상황별로 작업을 잘 할 수 있다면 깔끔한 버전관리가 가능하게 된다.
[ 참고하면 좋다 , https://bj-turtle.tistory.com/96 ]
Merge
어떠한 작업들(Branches)을 서로 합친다는 의미로 병합이라고 한다.
Conflict
여러명이서 작업할때 똑같은 위치의 같은 소스를 수정 및 삭제를 한 후, merge를한다면어떻게될까요? 네. Conflict(충돌)이 생기면서 오류가 난다.
Stash(스태쉬)
Local에서 작업한 소스를 임시로 다른 곳에 저장해두는 기능이다.
짧게 요약하자면, 소스트리 사용 자체가 협업의 이유, 소스 저장 및 공유, 버전관리용 등의 이유로 사용하는데 어떠한 포인트에서 작업중 급하게 다른 포인트에서 작업을 하게 될 경우를 대비해서 임시로 저장해 두었다가 원할 때 꺼내쓸 수 있는 그런 의미로 꼭 필요한 기능이라 할 수 있다.
* 주의 - Stash를 하지 않고 다른 포인트(또는 브랜치)로 체크아웃을 할 경우 작업중이던 소스들이 사라질 수 있다.
즉, 작업하고 있는 상황에서 commit을 하지않고 branch를 이동할 경우 오류문구가 들 때 Stash로 해결하면 된다는 것이다.
Discard (폐기)
Revert Changes, Commit하기 전 수정사항 취소하기/되돌리기
이 기능 하나로 필요없는 수정사항을 하나씩 지우기보다는 한번에 되돌릴 수 있다는 편의성의 기능이 아닌가 생각이 되어진다.
중요한건Commit 직전의 수정된 소스를 처음 수정 직전의 상태로 되돌리는건데 여기서 Discard의 사용 목적은 단지 편의성이 목적일 것 같다.
Tag (태그)
commit을 참조하기 쉽도록 만드는 것이 Tag입니다. Tag를 사용하는 이유는 개발자 마음대로겠지만 주로 버전이 바뀌었거나 특정 표시를 남기고 싶을 때 사용한다. 간단하게 Tag를 남기게되면 예전 소스를 찾을 때 매우 유용하고 관리도 깔끔하게 더 잘 되겠지?
<태그활용법>
태그는 Lightweight (가벼운) 와 Annotated (주석이 달린) 두 종류가 있습니다.
1) Lightweight Tag : 특정 commit에 대한 포인터만 저장됨 (로컬에서만 적용)
2) Annotated Tag : tag를 만든 사람의 이름/이메일, 생성일자, 메세지, 서명 등을 모두 저장
이 두 Tag의 가장 큰 차이점은 Annotated Tag는 다른사람과 공유가 가능한 태그이다.
Git-flow (깃 플로우)
어떻게 개발을 할 것인지에 대한 전략이다. 전쟁을 준비하기 전에 전략을 짜듯이 소스 관리전에 미리 전략을 짜는거라고 생각하면 되겠다.
소스트리를 사용함에 있어서 제일먼저 준비하고 알맞게 사용한다면 잘 짜여진 트리를 활용할 수 있다.
[ 소스 관리에 대한 전략을 잘 정리해둔 블로그님의 정보를 참고해라. https://devlog-h.tistory.com/6 ]
Remote (원격)
원격 저장소(Remote Repository)를 뜻하는 Remote는 Local Repository(로컬 저장소)와 연결하여 모든 소스들을 네트워크상의 저장소에서 백업해놓는 기능이다.
이 버튼을 클릭하면 연결되있는 원격 저장소가 열린다.
Explorer (탐색기)
저장소를 생성한 위치 또는 폴더로 이동한다.
Settings (설정)
저장소 설정 페이지에서는 Gitignore을 설정할 수 있다. Ignore이라는 사전적 의미는 무시하다 라는 뜻 인데, 버전관리에 있어서 실제로 들어가면 안되는 정보라든가 불필요한 정보들을 미리 설정하여 제외하는 기능을 말한다.
[ Gitignore에 대한 자세한 정보는 옆 링크를 참고해라. https://www.lesstif.com/gitbook/git-ignore-gitignore-54952369.html ]
■ 1-3. 소스트리를 이용한 Github 협업 방법
아래의 블로그에 정말로 자세하게 쉽게 설명이 되어있으니 참고해보길 꼭 권장한다.
'프로젝트 > country-explorer 프로젝트' 카테고리의 다른 글
Rest API을 통하여 Retrofit2을 사용해 특정 데이터 가져오기 미해결 (0) | 2023.02.03 |
---|---|
내가 country-explorer 프로젝트에서 Git Branch를 사용하는 방법 (0) | 2022.10.24 |
Git Branch란 ? (0) | 2022.10.20 |
country-explorer 프로젝트 개요 (0) | 2022.10.19 |