Git

안드로이드 스튜디오도 git을 사용하기 편리하게 되어있다. 원래는 소스트리라는 GUI가 제공되는 써드파티로 썻었다면, 안드로이드 스튜디오를 주로 사용하고 나서는 소스트리를 이용하지 않게 되었다. 점점 시간이 지나더니 그 범위는 이클립스나 다른 여타 IDE들에서도 편리하게 사용하게 변하였다. 처음에는 Git, Github가 같은 프로그램의 동일선상에서 무언가 하는거라고 생각했던 그때 겁나서 못했던 git이 Ubuntu로 별짓을 다하다보니 이제는 그런가보다.

1. 분산형버전관리시스템

Git은 개발을 하면서 따로 이전코드들을 일간 주간 월간 반기간 1년 이런식으로 분기를 나누어 따로 안정된 상용화 버전을 나누지 않아도 되도록 도와주는 분산형버전관리시스템이다. Git은 저장소를 따로 두고 있으며, 그건 Github일 수도 있지만, 이여야 하는건 아니다. Gitlab, Bitbucket, 개인나스, 로컬 등 다양한 저장소를 이용할 수 있다.

  • commit을 통하여 변경 사향에 대해 기록, 변경자를 추척할 수 있다.
  • 로컬저장소와 원격저장소에 push와 pull로 밀어내고 받아올 수 있다.
  • 해당 내용이 협업 시 다른사람과 겹치게되어 코드를 수정할때는 수동으로 merge해야한다.
  • 브랜치라는 것을 따로두어 안정화 버전과 신기능이나, 테스트, 리팩토링 등 모든 작업이 끝나고 안정화가 됬을 때 서비스하고 있는 것과 merge하여 간편하게 관리할 수 있다.
  • 알 수 없는 오류를 만났을 때 revert를 통하여 강제로 정상작동한 코드로 돌릴 수 있다.
  • clone을 통해 원격저장소에 저장된 코드나 정보, 프로젝트를 로컬에 받을 수 있다.

2. Git 사용법

$sudo apt-get update
$sudo apt-get install git

$git --version # 버전 출력이면 성공

3. Git 환경설정

$git config --global user.name "ty"
$git config --global user.email "sycork@gamil.com"
# 추후 프로젝트 별로 관리하고 싶다면 --global을 빼고 변경

$git config --global core.editor vim

4. GitHub SSH키 생성

$ssh-keygen -y # -y를 빼고 입력해줘도 무방

해당 명령으로 ~/.ssh./폴더 내 id_rsa, id_rsa.pub이 생성된다. ssh키 페어라고 부르며, id_rsa.pub은 public key, id_rsa는 private key 혹은 secret key라고 한다.

$cat ~/.ssh/id_rsa.pub

해당키를 복사하여 Github의 설정에 공개키설정(SSH and GPG keys)에서 추가한다.

4.1. 초기화

Github 설정에 등록한 키를 삭제하고, cat ~/.ssh/id_rsa.pub 공개키를 복사하여 다시 Github에 등록.

  1. 이전에 가장 오해하고 있던 부분 중 하나가 git과 Github를 동일선상에 무엇으로 연동되지 않으면 큰일난다고 생각했었다. 이 두가지는 별개이다.
  2. commit을 자주 하지않으면 로컬저장소에도 기록이 자동으로 남지 않는다. 약간 무게가 있는 기능을 구현했다면 자주자주 commit을 하여 혹시모를 이슈를 대비하는게 좋다.
  3. 브랜치를 사용하지 않을 경우 협업 시 모두가 main인 상황이 오게되고, 모두가 main일 경우 로컬저장소에서만 서로 따로 사용한다면 문제가 생기지 않지만, 원격저장소에 push를 하는순간 상상도 못하는일이 벌어지게된다. 잘 모르면 쓰지 말아야한다는 혼이 날수도(내이야기) 있다.

참조

Git:초기 설정
Git
Github
Github/sycork 내꺼