Git 에 대해



요즘 Git에 대해 공부중이다.

내가 알기론 Git은 각종 버전관리툴의 장점만 모아 왔다고 한다.

나름 버전 관리툴을 다양하게 써 본거 같다. 각각 프로젝트 진행 하면서 이직도 많이해 보고

여러 회사에 파견 근무 하면서 각 회사마다 하나 같이 다 다른 버전 관리툴을 사용했다.


SVN(Subvision) 사용하기 참 편리 하다. git 아니면 svn 두가지 버전 관리를 많이 사용할 만큼

svn의 편리함은 버전 관리 초보에게 가장 접근하기 쉽지 않나 싶다.

개념 잡기도 쉽고 나도 따로 공부해 가며 써본적이 없을 정도로 기본 기능은 편리하며

윈도우 환경에서는 TortoiseSVN 이라는 툴로 인해 사용하기 굉장히 편리했다.

그냥 탐색기 열어서 수정 사항 commit 하고 오래되서 기억이 잘 안 나지만 checkout 이었나?

소스 받고 마우스 우클릭 만으로도 쉽게 소스 관리를 할 수 있어서 편했다. 그리고 가장 강력한

한글화가 잘 돼있다.


Perforce 예전 삼성에 안드로이드 개발(안드로이드 초기로 해외에도 몇모델 없고 2~3모델쯤?

국내에는 아이폰 이야기가 처음 기사화 되던 시절)

하던 시절에 사용해본 형상 관리.. 사용하면서 엄청난 두려움에 휩싸였다. 굉장히 불편했고

플젝 종료시 까지 소스 올리고 받고 외에는 거의 사용해볼 생각도 못했던거 같다.. 까다로웠다.


Source safe SK 에서 휴대폰 개발 하던 시절 사용했던 툴 이것도 굉장히 불편 했던게 checkout 이었나?

하면 일단 소스에 Lock 이 걸리면서 소스 제어권을 나 혼자 갖는다. 그러면 그 파일을 다른 사람이

수정을 할 수가 없다. 이것도 워낙 오래전에 써 봐서 정확히 기억은 안 나지만 기본적으로 받아 놓은 소스에

수정을 못하게 되어 있어서 이것을 수정 하려면 Lock 걸고 수정 하고 Unlock 하고 바로바로 서버에 반영

되었던거 같다.. 아님 말고..

여튼 이런 방법 때문에 한두명이 작업 하는 것도 아니고 수십명이 작업하는데 Lock 을 오래 걸 수가 없고

또 내 이슈가 언제 수정 될지는 모르니 대부분 다른곳에 소스를 받아 놓고 그곳에서 수정 하고

Source safe 와 동기화할 소스에 수정 파일을 lock 걸면서 merge 하는 방식으로 작업 했던것 같다.

이거 덕에 merge 툴의 편리함을 많이 알게 됐고 지금도 많이 활용중이다. 그땐 Araxis Merge 를 사용했는데

UI가 정말 보기 편했었다. 하지만 UTF-8을 제대로 지원을 안해서 차후엔 Beyond compare 만 사용했다.

여튼 이때 배포큰 어떤 사람은 쿨 하게 퇴근할때 Lock 걸고 Merge후 Unlock을 풀지 않고 퇴근해 버려

그것도 금요일에! 그것도 가장 많은 사람들이 접근하는 파일에! 주말근무 했던 아픈 기억이 있다...

웹 서핑중 Lock 걸려도 수정할 방법이 있다고 했는데 그때는 작업하던 모든 사람이 그 사실을 몰랐다 -_-


Git 내가 써본것중 가장 좋은것 같다. 물론 진입 장벽이 좀 있어서 개념을 제대로 잡지 못하면 SVN수준으로

밖에 사용을 못한다. SVN 처럼 TortoiseGIT 이나 SourceTree 같은 GUI기반의 툴이 있긴 하지만 제대로 활용

하려면 콘솔로 이용 하는게 좋은것 같다. 일단 가장 안전한것 같다. 각 버전 관리툴의 장점을 모아 놓은것

같다. 대부분 커맨드가 로컬에서 이루어 지기 때문에 내가 무언가 잘못해도 서버에 피해 없이 내 로컬만

날리면 된다. 그리고 좀 더 자세히 알게 되면 구지 날릴 필요도 없다. push만 조심 하면 문제 될것도 없다

거기다 각 저장소 들이 전부 저장소를 가지고 있기 때문에 서버에 문제가 생긴다 해도 복구가 쉽다.

인증 방식이 다양해서 보안도 다른툴 보다 나은듯 하다. Git과 SVN의 차이점이 궁금해서 좀 찾아 보니

git은 빠르다는 장점이 있는듯 하다 확실히 branch의 활용 빈도가 높다. SVN은 branch를 따서 이동 할때

소스 전체가 왔다 갔다 하는 개념이라 나도 전에 잘못 쓰다가 소스가 꼬인적이 여럿 있었지만 git은 굉장히

빠르게 전환도 되고 합치기도 쉽다. SVN을 써본지가 오래 되서 자세하게 이야기 할 수 없지만 체감상으로도

git이 익숙해 지면 강력하고 편하다. 어차피 git도 주로 자주 쓰는 명령어만 쓰게 되니 기본 명령만 익혀서 쓰고

Progit 이라는 책이나 git 사이트에서 기능들 쭉 보다가 이거 활용하면 좋겠는데? 싶은게 있으면 google에서

그 명령어에 대해 검색해서 누가 어떤식으로 활용했는지 좀 알아보고 접목해 보다 보면 나날히 빨라지는

개발속도를 체험할듯 하다.

나도 아직 익히는중!


아래는 틈나는 대로 업뎃중! 그냥 종종 쓰는거 모아 놓았는데 나중에 양이 많아지면 따로 포스팅 해야지

Git global setup:

git config --global user.name "이름" git config --global user.email "이메일"

Create Repository(내부 저장소 생성 후 원격 저장소와 연결)

mkdir <폴더> cd <폴더> git init touch README git add README git commit -m 'first commit' git remote add origin git@<주소>:<git이름>.git git push -u origin master

Existing Git Repo?na (솔직히 이건 왜 내가 메모해 놨는지 모르겠음 내용보니 repo 를써보고 싶었던거 같음)

cd existing_git_repo
git remote add origin git@<주소>:<git이름>.git
git push -u origin master

Git Clone
git clone git@<주소>:<git이름>.git

GIT tag
git tag -a <tag명> -m "코맨트"
git remote
git push <remote repository> <tag명>


'프로그래밍 > Git(버전관리)' 카테고리의 다른 글

[GIt] 무료 git 사이트 이용  (0) 2014.09.21

[GIt] 무료 git 사이트 이용

https://bitbucket.org/





소규모 개발일 경우 무료로 사용할 수 있는 git 사이트

아무래도 소스 버전 관리 아마 현재 나온 버전 관리툴은 상당수 사용해 본것 같은데

SVN , Source Safe, Perforce, Git등


사용하기 가장 편했던 툴은 아무래도 Subvision(SVN) 윈도우용 툴도 잘 돼 있는 편이고 사용하기가 간편하다

언제나 프로젝트를 진행하다 보면 회사 이직도 자주 하다 보니 다양하게 버전 관리툴을 사용하다가 결국

Git 까지 사용할 수 밖에 없었고 공교롭게 이번 업무는 개발쪽이 아닌 Git 을 관리 하는 업무를 맏았다.


프로젝트 시작전 Git에 대한 공부를 하다 보니 생각보다 뛰어나고 강력하여 Git에 빠져 들게 되었는데

개인적으로 Git을 제대로 사용하려면(아직도 멀었지만) 요즘 잘 나오는 GUI툴을 사용 하는게 아닌 직접

명령어를 사용하면서 쓰는게 가장 좋은것 같다.


그런 의미에서 소규모로 프로젝트를 진행할때 Git은 서버 구축이 비교적 까다로운 편인데 무료로 호스팅

해주는 사이트가 있어서 사용하고 있다.


개인적으론 프로젝트라기 보다 개인적은 공부나 취미로 작업한 학습코드? 등을 저장 하고 Git 연습을 하는

식으로 활용 중이다.


기존에 Git 사용 할때는 git clone, git commit, git push, git pull, git diff, git status 기껏해야

이정도만 활용했는데 이거만 가지고는 git을 썻다기 보다는 git을 svn 쓰듯이 썻다. -_-;

'프로그래밍 > Git(버전관리)' 카테고리의 다른 글

Git 에 대해  (0) 2014.09.21

개발툴 소개

프로그래밍/웹개발 2014. 9. 21. 17:31

웹 개발툴

http://brackets.io/



오늘 급 웹개발을 다시 해 보고 싶어서(취미로) 

웹 서핑중 발견한 녀석 Adobe 사에서 만들었다는데 한번 써 보고 괜찮으면 계속 쓰고

난 기본적으로 안드로이드 개발자라 이클립스가 가장 익숙하고 이클립스에서도 에드온을 설치하면

웹 개발이 쉽지만 기본적으로 무겁고 지겹기도 하고 다른 뭔가 전용적인 툴을 사용해 보고 싶어

UI가 마음에 드는 녀석을 찾았다..


아직 설치한지 5분도 안돼서 기능이나 그런건 모르겠지만 일단 UI 깔끔하니 마음에 든다.

덩치 가볍다. 이클립스는 엄청 무거운데 이녀석은 굉장히 빠르네...

그리고 확장 기능이 있다고 어디서 본거 같다... 차차 사용해 보고 여기에 정리해야지