Ckm Report
소스트리 사용법
Git GUI
Git을 좀더 편하게 사용하기 위해서는 Git GUI(Graphic User Interface)를 사용하는 것입니다.
Git GUI의 대표적인 종류
- SourceTree
- Github Desktop
- Git Extensions
- GitKraken
각 GUI 별 특징
1. Soucetree
- bitbucket, trello, jira 등을 서비스하는 Atlassian에서 만든 어플리케이션 입니다.
- 장점
- 안복잡함- 직관적인 UI
- 한글됨- 이 점 때문에 한국 유저가 Git을 입문하기 쉬워 한국 한정 점유율이 높습니다.
- 시각화- marge, branch등 시각화가 아주 잘 되있습니다.
- 단점
- 느리다 - 줄수가 많은 파일을 미리 볼때 로딩이 꽤 걸립니다. 간단한 소스면 모르겠지만, Markdown, html 이나 mata, xml 처럼 줄이 쉽게 많아 질수 있는 경우면 굉장히 답답할것 입니다.
2. Github Desktop
- Github를 서비스하고 코드편집기 Atom을 개발하는 Github에서 만든 어플리케이션 입니다.
- 장점
- 빠름- 멈춘다는 느낌이 없습니다.
- 커밋정보- 변경점이 제일 확인하기 편합니다.
- 오픈소스- 자유로 커스텀하고, 빌드 할 수 있습니다.
- 단점
- 한글이 안된다 , 한글을 지원하지 않습니다.
- 시각화 부족 - merge, branch의 시각화가 거의 없습니다
3. Git Extension
- 정확히는 git의 확장기능들이 포함된 소프트웨어 입니다. 2008년부터 역사가 시작됬으며, 제일 강력하고 개발자 친화적인 소프트웨어 입니다.
- 장점
- 시각화- marge, branch등 시각화가 아주 잘 되있습니다.
- 오픈소스- 자유로 커스텀하고, 빌드 할 수 있습니다.
- 빠르고,안정적- 무려 2009년 부터 개발됬습니다. 제일 빠르고, 가장 안정적입니다.
- 우클릭- 어플리케이션이 아닌 Git repositry가 있는 폴더에서 우클릭을하면 git을 이용할 수 있습니다.
- 단점
- 안예쁨- UI가 투박한 대신 제일빠르지만, 중요한것은 애니메이션이 없어서 버벅인다고 느낄 수 있습니다.
- 비 직관적- 아이콘 보다는 텍스트, 직관적이기보다는 세부적입니다.
4. GitKraken
- Git을 사용하는 개발자들을 위한 크로스 플랫폼 GUI Git 클라이언트입니다. GitKraken은 Git 작업을 시각적으로 표현하여 사용자가 Git의 작업을 더욱 쉽게 이해할 수 있도록 도와줍니다.
- 장점
- 시각적 인터페이스: GitKraken은 Git 작업을 시각적으로 표현하여 Git의 작업을 더욱 쉽게 이해할 수 있습니다. 브랜치, 병합, 태그 등의 Git 작업을 시각화하여 보여주기 때문입니다.
- 다양한 기능: GitKraken은 Git 작업을 위한 다양한 기능을 제공합니다. Git의 모든 기능을 지원하며, 코드 리뷰, 코드 스니펫 등의 기능도 제공합니다.
- 다중 플랫폼 지원: Windows, macOS, Linux 운영체제에서 모두 지원됩니다.
- 단점
- 무거운 애플리케이션: GitKraken은 다른 Git 클라이언트에 비해 무거운 애플리케이션입니다. 이는 GitKraken의 시각적 인터페이스를 지원하기 위해 많은 리소스를 사용하기 때문입니다.
Source Tree 사용방법
Source Tree 설치 링크: https://www.sourcetreeapp.com/
사용을 위한 용어 정리
- 저장소(Repository): 내가 Git 으로 관리할 폴더(디렉터리)이다
- 커밋(Commit): Git에서 버전을 기록하는 단위이다
- 커밋한다: Git에 하나의 버전을 기록한다
- 로컬(Local): 네트워크 없이 접속 가능한 것
- 로컬 컴퓨터 = 내가 바로 사용하고 있는 컴퓨터라고 할 수 있다
- 원격(Remote): 네트워크를 접속해서 사용해야 하는 것
- 클라우드(Google Drive 같은 것): Git 저장소를 올려서 공유하는 곳이다
- (ex) GitHub, Bitbucket
- 푸시(Push): 로컬에 있는 저장소를 인터넷(Remote)에 올리는 것
- 푸시를 하면 .git 폴더를 포함해서 나의 모든 파일과 변경 과정(커밋)들을 업로드 한다
- 복제(Clone): 인터넷에 있는(원격) 저장소를 로컬에 다운 받는 것
sourceTree를 사용하려면 github와 같은 원격 저장소가 필요하다. 따라서 github 아이디를 만든 후 new repository를 만들어준다.
##
우리는 github와 SourceTree를 연결하고 싶으므로 gitclone과 같은 작업을 수행하여야한다. 따라서 상단의 clone버튼을 눌러준다.
github repository 주소를 복사 붙여넣기 하게 되면 SourceTree에서 자동으로 git 저장소라는 것을 판별하여 알려주게 된다. 그 다음 자신의 컴퓨터에 저장될 로컬 저장소의 위치를 지정한 뒤 코드를 git clone해준다.
- 다음과 같은 텍스트 파일을 만들어줍니다
- 그 후 clone이 저장된 로컬디렉토리에 넣어준다
-
다음과 같은 화면이 나타난다
- 스테이지에 올라가지 않은 상태
Workspace - 파일상태 (git의 파일 상태 분류법)
- commit창을 누르게 되면 위와 같은 화면이 뜬다. 또한 commit을 하고 싶다면 commit message를 작성한 후 커밋 버튼을 누르면 된다.
-
커밋을 하게 되면 저장이 되게 되는데 이를 원격 저장소에 올리고 싶다면 push라는 과정을 거쳐야한다.
-
push버튼을 누르게 되면 commit한 과정 중 push하지 않았던 것들이 원격 저장소 github에 올라가게 된다.
- 메뉴 모음
- 커밋: 스테이징된 파일을 커밋
- Pull: 원격 저장소의 변경 사항들을 전부 가져오기
- Push: 지역 저장소의 변경 사항들을 전부 원격 저장소로 내보내기
- 패치: 원격 저장소의 내용을 가져오기 전에 변경 사항이 있는지 확인
- 브랜치: 브랜치의 생성과 삭제 등을 관리
- 병합: 브랜치 병합
- 스태시: 커밋하기 이전의 파일을 따로 보관합니다. 일종의 감추기기능인데, - 스태시를 이용하기 위해서는 파일이 추적(Tracked)상태여야합니다. 즉 한 번 이상은 커밋된 적이 있는 파일에 대해서만 사용이 가능합니다.
- 태그: 특정한 위치에 태그를 답니다.
- 브랜치 베너를 통해 브랜치를 새로 만들 수 있다
-
클릭을 통해 브랜치를 이동하여 작업 할 수 있다
- Fetch
- Pull은 변경 사항을 다운받고 내 로컬 저장소에 적용까지 한다. 정확히 말하자면 모든 커밋을 다운로드하고 자동으로 Merge까지 해준다. (뒤에서 함)
- Fetch는 다운 받기만 하고 적용은 안 한다. 실제 파일은 변하지 않는다. 한번 확인하고 수동으로 Merge할 수 있기 때문에 보통 Fetch가 더 안정적이다.
- 따라서, Pull = Fetch(다운만 함) + Merge(합침)
- 실수를 할 수 있기 때문에 Fetch하고 Merge하는 것을 권장한다.
- Revert (되돌리기)
파일들을 이전 [커밋]인 상태로 되돌린 새로운 커밋을 만든다.
- 이전 커밋을 수정하지 않고 그대로 남겨두기 때문에 안전하다.
- Revert를 하고 난 다음에는 새로운 커밋이 생기기 때문에 바로 충돌 없이 Push할 수 있다.
- git revert [커밋]
- 바로 커밋해주는게 싫다면 git revert -n [커밋]
- 스태시 (임시저장)
- 스태시: 로컬에서 작업한 소스 내용을 임시로 다른 곳에 저장, 간직해 놓는 기능이라고 볼 수 있습니다.
- 활용하는 상황:
- git에서 프로젝트를 받아서 개발을 하는데 현재 작업 중인 브런치가 아니라 새로 브런치를 따서 작업을 해야 하거나 A라는 브런치에 작업했어야 하는데 모르고 B라는 브런치에 작업한 경우
- 현재 작업하고 있는 내용이 있는데 급하게 요청 온 내용이 있어서 현재 내용을 임시로 저장해놓고 급하게 요청 온 건만 올리고(push) 싶을 때 현재 작업하고 있는 소스 내용을 옮겨야 하는데요. 그럴 경우 현재 작업한 소스 내용을 임시로 저장해놓고 새로 브런치를 만들거나 이동한 후에 옮길 브런치에 적용을 하면 됩니다.
서브목차