본문 바로가기
공부/개발일지

GitHub 사용하기 (TortoiseGit, GitHub Desktop)

by 파리삼이 2020. 1. 4.
728x90

https://github.com/

 

Build software better, together

GitHub is where people build software. More than 40 million people use GitHub to discover, fork, and contribute to over 100 million projects.

github.com

개발할때 필수는 아니지만, 한 번 써보면 없을 땐 어떻게 했지?싶은 형상관리 툴의 가장 유용한 툴이 아닐까 싶다.

처음 개발을 시작할땐 svn으로 했는데,

그 땐 학생일때, 완전 신입 개발자일 때 였는데.

학생일 때도, 회사에서도 누군가 실수하면 다른 사람의 소스까지도 엎어져서 사라질 수 있는 편하지만 두려움의 존재였다. (학생일땐 그냥 우리가 잘 못해서 그런줄 알았고...ㅠ)

학생일 땐 사실 없어져도 금방 다시하면 되고, 계속 얘기하면서 하면 쉬운데 (이클립스를 사용한다면 특히나 진입장벽이 굉장히 낮은 svn)

예전에 첫직장의 팀장님의 소스를 주임님이.. 엎어버림..ㅋㅋㅋㅋㅋㅋ

그 날 이후로 팀장님은 더 야근을 시켰고ㅡㅡ^

 

뭐 어쨋든 지금 회사도 현재는 Git을 잘 쓰고있지만, 처음엔 자바 개발자들은 svn을 썼었다.(이유는 팀장님이 svn을 좋아함)

그래서 문제없이 썼으나, commit 실수로 날라가는 소스가 빈번히 발생했고,

다음 프로젝트를 하며 git으로 다 바꿔야한다는 본부장님 덕에 한동안 ㅠㅠ 진입장벽이 높은 git을 공부해가며 썼다.

결국은 지금 commit, push, pull, revert만 쓰지만 잘 사용중이다. ㅋㅋ

아 브런치를 새로 따는 정돈 할 수 있다(..) 브런치를 버리는것은 못하지만, 버려두기에도 쉬운 git😊

 

 

회사에서는 TortoiseGit 을 사용해서 거북이를 날려서 사용했고, 이전 컴퓨터에도 그렇게 사용했었는데

새로 프로젝트 생성 후 clone하려는데, open in Desktop을 잘못(?)눌러보았다가 GitHub Desktop을 깔게 되었다

 

사실 깔끔하긴 GitHub Desktop이 요즘 프로그램 같지만, tortoiseGit은 딱 필요한 기능 사용하기가 훨씬 좋은 듯 하다.

내가 이미 3년 이상 적응해서 그런것같기도 한데 거북이는 징그럽지만 가볍고 깔끔해서 두 개를 다 비교해보겠다.

 

일단, github desktop을 사용해본다.

(https://desktop.github.com/) 에 들어가서 다운로드받아 설치는 어렵지 않게 끝낼 수 있다.

git에서 만든 프로젝트를 clone해 본다.

gitHub에서 프로젝트를 생성 후 빨간색으로 표시 된 Clone or download 을 클릭

 

그렇다면 이런 팝업이 뜨는데 아래의 opne in desktop을 선택하면 

GitHub Desktop 프로그램이 실행된다.

가장 위의 보라색부터 간단히 설명하면,

다른 repository로 변경을 할 수 있다.

노란색박스에서는 branch변경이 가능하다. (나는 master를 만들고, dev로 기본 개발을 하고, issue에 따라서 branch를 나누는 편이다.) 

주황색박스에서는 소스 수정 후 업데이트를 알 수 있다.

왼쪽 사이드에 있는 박스에서 업데이트 된 소스들을 한 눈에 확인 할 수 있다.

빨간색 가운데 박스에서는 내가 지금 해야하는? 할 수 있는 버튼이 생기는데, pull request 는 현재 브런치에서 pull을 해야한다는것인데 서버에서 pull 할게 없어도 눌러봐도 변화도 없고 문제도 없다.

서버에서 받아야할 파일이 있다면 pull 하면 받을 수 있다.

내가 수정 한 것이 있다면 push 버튼도 나온다.


가장 쉽게 지금까지 사용한 git을 설명하면 일단 현재 중요한 branch에서 새로 하나 따서 내가 할 일로 나누고,

로컬에는 commit은 언제든, 자주 하는게 좋고

pull도 필요하다면 바로바로 빨리 받는게 협업에는 도움이 되는 것 같다.

push는 pull을 해야지 할 수 있다. (일단 바뀐 소스가 있다면 부딪히는지 확인해야함으로 먼저 받고, 올려야하는 시스템)

 

pull을 하고 내가 push를 할 수 없다면 소스를 확인해서 같은 부분이 수정되어있는지를 확인해야하고

mergy 혹은 확인해서 수정하고. push를 하면된다.

 

내가 쓴 소스가 잘못되었거나 다시 현재 저장되어있는 소스로 돌아가려면 revert로 초기화 시켜버리면 된다.


tortoiseGit도 한번 비교해서 사용해보자.

https://tortoisegit.org/

 

TortoiseGit – Windows Shell Interface to Git

Support Manuals, FAQ, bug reporting, mailing list, and more…

tortoisegit.org

홈페이지에서 다운로드를 눌러 본인 컴퓨터에 맞는 버전을 선택해서 다운받는다.

이것도 어려울 것 없는 설치라고 말할 수 있다. next 고고고 ! 쉽게 완료 되었다.

Run first start wizard 를 선택하고 닫았으므로, 처음에 설정해야하는 tortoiseGit wizard가 실행된다.

물론 실행하지 않고 다음에 설정해도 되는 부분.

 

영어로 그냥 씁시다. 물론 홈페이지에 korean도 있지만 딱히 한글이 필요할만큼의 프로그램은 아니라.

 

넘기다보면 ssh , key설정을 하는 부분이 나온다.

여기서는 키를 만드는게 개인 컴퓨터에서 git을 사용하기 매우 편리해진다.

키를 안만들면 push, pull등 서버에 있는 것을 사용하려면 로그인을 계속 해야한다.ㅠㅠ

난 크롬 자동로그인을 사랑하는 보안과 상관없는 편리함이 중요한 사람이므로 ㅋㅋㅋㅋ(?)

한번 키를 만들어본다.

 

Generate PuTTY key pair를 선택해본다. (가장 진한 버튼)
이런 화면이 나오는데 Generate를 클릭하면 키를 만들 수 있다.
버튼을 누르고 나면 상태바가 나오고 아래 빈칸이 나오는데, 가만히 있으면 평생 저 상태ㅠㅠㅋㅋ

왜 진행이 안될까?라고 생각하지말고 ㅋㅋㅋ 영어도 읽어보자.

blank area를 마우스 포인터를 움직이면 키가 랜덤값으로 생성이 된다.

뭔가 잘 움직여야할 것 같은 느낌ㅋㅋㅋ 대충 움직여도 된다.

생성 후에 public key 와 private key는 저장해줘야한다.

public key는 상관없지만 private 키는 꼭 저장하고 위치를 기억해야한다.

 

 

그러면 tortoiese git도 사용해보자.

빨간 버튼을 선택하면 url이 복사가 된다.

git프로젝트가 생성 될 위치에서 마우스 오른쪽 버튼을 클릭하고,

git Clone을 선택해본다.

TortoiseGit이 잘 설치되었다면 문제없이 나올 항목들.
아까 그 버튼을 누르고 바로 실행했다면 URL이 자동으로 들어가있을 것이다.

물론 URL이 자동으로 안들어가도 복사로 넣어도 된다.

directory도 수정이 가능하다.

여기서 중요한건 아까만든 키를 여기에 로드 시키는것인데

가운데쯤의 Load Putty Key를 선택하고 활성화시켜서 아까 key의 위치에서 만든 privateKey를 넣어줘야한다.

그리고 OK를 누르면 바로 clone이 된다.

서버에서 거북이를 날려서 나의 로컬에 프로젝트를 넣어준다ㅎ_ㅎ

 

그렇다면 바로 원한 위치에 프로젝트를 가져오는 것을 볼 수 있다.

master를 기본으로 가져오기때문에 branch를 변경해줘야 된다.(나는 master가 비어있기 때문이다.)

 

프로젝트를 선택하고, 이번엔 TortoiseGit을 선택한다.

이미지는 재탕이지만 바로 위에 있는 요 버튼
여기서 한눈에 branch, 이동, 형상관리를 할 수 있다. 

All Branches를 선택해야 다른 브런치들도 확인 할 수 있다.

(과거의 나는 이걸 몰라서 제대로 안받아진줄 알고 삽질을 어마하게 했다ㅠ_ㅠ)

 

 

어쨋든, 투박하지만 한눈에 보기 쉬운 TortoiseGit과 깔끔하고 요즘 프로그램 같은 GitHub Desktop을 알아봤다.

나는 거북이는 익숙하니까 새로운 깃허브 데스크탑을 좀 더 사용해보고 둘 중에 하나를 선택해 쓰기로 해본다.

아 물론 그냥 gui 프로그램을 사용하지 않아도 되지만,

편하게 쓰라고 만든 프로그램들을 쓰는것도 좋다고 생각한다.

(지만 사실 나는 전공자인데 유닉스 리눅스도 안한 나부랭이라 cmd나 terminal이 익숙하지않다ㅠㅠㅋㅋ 그래서 아직도 까만 창에 명령어만 쓰는게 너무 불편하다ㅠㅠ node도 그래서 적응을 못하는 중)

728x90