Home Git 혼자 작업하기
Post
Cancel

Git 혼자 작업하기

GitLogo

Git 혼자 작업하기


Git이란?

  • Git은 폴더 안에 시간 여행이 가능한 평행 우주를 만드는 것.
  • 시간 여행이 가능 하다는 것은 본인이 코딩을 실수 했거나, 이전 코드랑 비교해서 무엇이 바뀌었는지 헷갈릴 때 언제든 폴더 내 상태를 과거로 돌릴 수 있다. 또는 과거로 가서 필요한 코드만 가지고 현재로 돌아오는 것도 가능하다.
  • 평행 우주를 만든다는 것은 폴더 안에 여러 평행 우주들을 생성해서 여러 버전을 작업하다가 하나만 골라서 결과물로 결정 할 수 있다는 의미이다.

Git 사용법

  • Git 사용법은 아래 두가지로 나뉜다.
    • CLI(Command Line Interface)로 명령어를 입력.
    • 마우스로 쓸 수 있게 GUI로 만들어진 소프트웨어(ex)SourceTree) 사용.
  1. Git 저장소 만들기
    1. 원하는 위치에 프로젝트를 진행할 폴더를 생성.
    2. 2가지 방법으로 진행.
      1. CLI로 하는 방법
        1. cmd에서 현재 폴더에서 git init을 입력.
        2. git config —global user.name(사용자 이름)과 git config —global user.email(사용자 이메일)을 등록.
        3. .git 폴더가 숨김폴더로 생성되며 이곳에 평행우주가 생성되는 것.
      2. SourceTree로 하는 방법
        1. 홈에서 Create를 클릭 후 목적지 경로와 이름을 입력하고 생성버튼 클릭.
        2. .git 폴더가 생성될 것.
  2. 현재 시점을 저장하기
    1. CLI에서 git status 명령어로 현재 상태를 확인.
    2. git add (파일이름) 명령어를 입력하여 git의 타입캡슐에 추가.
    3. git commit 명령어로 타입캡슐을 묻으며 타입캡슐에 대한 설명을 vim에디터로 작성.
    4. git status 명령어로 더 이상 묻을 것이 없는지 확인.
    5. 묻을 것이 있다면 add, commit으로 더 묻음.
    6. 모든 작업을 끝내고 git log 명령어를 입력하면 캡슐의 정보들과 메시지들이 나온다.
    7. SourceTree에서는 GUI로 전부 볼 수 있다.
  3. 과거로 돌아가기
    1. Reset (과감하게 돌아가는 방법)
      1. 과감하게 돌아가는 방법은 돌아갈 과거 이후 행적은 복원할 여지 없이 완전히 지우겠다는 것이다.
      2. git log로 확인한 타임캡슐 중에 돌아가길 원하는 시점의 일련번호 앞 여섯자리만 복사한 뒤 git reset (일련번호) —hard 명령어를 입력한다.
    2. Revert(미래에 한발을 걸치고 소심하게 돌아가는 방법)
      1. git log 명령어로 취소할 시점 캡슐의 일련번호를 복사한다.
      2. git revert (6자리 일련번호) 명렁어 입력으로 새 commit 작성.
      3. commit을 마치면 과거 시점으로 돌아가 있지만 git log를 확인해보면 reset 처럼 돌아간 시점 이후가 지워진게 아니라 새로운 캡슐이 묻혀있는 것을 볼 수 있다.
      4. reset으로 다시 미래로 돌아갈 수 있기도 하다.
  4. 평행우주 넘나들기 ( Branch )
    1. 회사에서 배포중인 프로젝트의 운영이나 추가 개발을 하기 위해서는 프로젝트에 손을 대야 하지만 마음대로 배포중인 프로젝트를 건드릴 수 없으니 평행우주를 만들어 배포중인 프로젝트에 대해 영향을 주지 않아야 한다.
    2. 새로운 평행우주를 만들기 위해 git branch (branch 이름) 의 명령어를 입력하여 새로운 branch를 생성한다.
    3. 생성한 평행우주로 가기 위해서는 git checkout (branch 이름)으로 이동할 수 있다.
    4. 새로 만들어진 평행우주 branch는 원 branch의 현 상태를 그대로 가져온다.
  5. 다른 우주에서 가져오기 ( Merge )
    1. CLI에서 작업 순서
      1. 새로 만든 평행 우주 branch들에서 일어난 변화를 main 브랜치로 가져와야 할 때 git checkout main 으로 main branch로 이동 후 git merge (가져올 branch 이름) 을 입력하면 commit을 완료하면 main으로 평행우주의 변화도 적용이 된 것을 볼 수 있다.
      2. 터미널에서 git log —graph —all —devorate 명령어를 입력하면 좀 더 시각화된 작업내용을 볼 수 있다.
    2. SourceTree에서 작업 순서
      1. 모든게 합쳐질 branch에 위치한 상태에서 병합할 branch를 우클릭 하여 merge 항목을 클릭.
    3. main에서 수정한 파일과 평행우주 branch에서 수정한 파일이 다를 때는 merge가 쉽게 이루어 지지만 같은 파일을 다룰 때는 충돌이 일어난다.
    4. 충돌이 일어나면 파일에 충돌이 일어나는 부분에 비교해서 나타내 주는데 이때 필요없는 코드를 지우고 git add로 캡슐에 넣고 git commit으로 캡슐을 묻으면 해결 할 수 있다.
    5. 여러 branch들에서 작업할 때, 협업할 때는 가능한 다른 branch들이 같은 파일을 수정하는 일을 피해서 작업하는 것이 좋다.
  6. 다른 우주에서 가져오기 ( Rebase )
    1. merge를 사용하면 branch로 분기해서 각각 작업해서 병합하기 까지 모든 과정이 log에 남아있다.
    2. 실제 프로젝트를 진행하다보면 여러 branch들에서 merge를 하므로 여러 갈래들이 여기저기서 합치고 분기해서 굉장히 복잡해지는 경우가 많다.
    3. 이때 모든 변경 내용들이 딱 한줄로 정리 되면 좋겠다 생각할 때는 merge 대신 rebase를 사용한다.
    4. rebase는 branch의 base를 재정의 하는 것으로 분기된 branch의 base를 재정의 하여 branch의 분기를 깔끔하게 정리할 수 있다.
    5. 추가로 다 쓴 branch를 삭제 할 때는 git branch -D ( branch 이름) 으로 지울 수 있다.

참고: 얄코 Git 강좌 (상)

Trending Tags
Contents

-

-

Trending Tags