TIL

0l0l·2021년 4월 15일
0

TIL

목록 보기
10/86

Git and Github

git : 모든 파일들의 변경사항을 트래킹하는 방식(version control system)

  • 특정 파일 트래킹한다면 수정한 내용과 수정된 시점, 누가 수정했는지 등의 변경사항들을 확인 가능(일종의 history)
  • 협업 시, 다른 개발자들이 업로드한 파일을 다운받을 수 있고, 수정하기 전의 내용으로 돌아갈 수도 있음
  • 개발자들에게 유용하며 실용적임
  • 파일을 text가 아닌 binary code(0과 1)로 읽음

github : git 파일, git 변경사항들을 업로드하는 공간(git provider)
업로드된 파일들을 다른 사람들과 공유 가능

이력서에 작성할 때,
git을 안다고 작성? ⭕ / github을 안다고 쓰면? ❌!

github desktop : git을 위한 graphic user interface
(콘솔창에 command(명령어)를 입력하는 대신 버튼을 클릭하여 커맨드를 실행)

repository : 내 파일들이 저장되어 있는 폴더
(git이 .git 폴더 안에서 파일의 모든 수정사항을 보고있다고 생각)

commit : 변경한 파일과 함께 git에 저장하고 싶은 그 시점(point in time)을 기록
어떤 파일 몇번째 줄에 어떤 내용이 바뀌었는지 알기 위함

area
git은 area를 가지며, 파일들은 세 가지 다른 area들 중에 있음

  1. working area (directory) : 내가 코드를 작성하고 저장하는 곳. working area 폴더를 생성하는 공간(visual studio code)
  • create files, delete files 등이 이루어짐
  1. staging area : 파일이 commit 될 공간(github desktop)
  • working area로부터의 모든 수정사항들은 기본적으로 github desktop에서는 바로 staging area에 추가
  • commit 할 파일과 하지 않아도 될 파일을 구분하여 staging area로 commit 가능
  1. repository area (commit area) : commit되어 추가된 파일과 수정사항 등을 기록, 보관하는 공간(git)
    기본적으로 data file의 변화가 git에 추가됨

branch
git branch

  • 공통의 베이스로 시작해 다른 타임라인(ver 1, ver 2,..)으로 나뉘어 각각의 방향에 맞게 파일을 commit하여 branch 생성
  • 특정 branch가 승인, 결정되면 공통의 베이스와 합쳐짐
  • master는 main branch 이름, 시작한 곳이며 현재 위치한 곳
  • master의 마지막 commit에서부터의 다른 타임라인으로 branch 생성되는 시점
    (master에서 최종 commit된 기록이 남겨져있는 상태로부터 시작한다는 의미)
  • 'Update from Default Branch' : 다른 타임라인에서 변경사항을 업데이트
    (master에서 이루어진 commit을 branch에도 commit하여 동기화함)
  • 'Merge into Current Branch' : 최종 branch가 결정되면 master branch에 추가시킴

※ branch 두 곳에서 동일한 행에 동시에 수정이 이루어져 merge하는 경우 conflict🚫 발생
Visual Studio Code에서는 색상으로 비교하여 시각적으로 표현해주고, 원하는 내용의 branch를 선택하여 confilct 해결

  • Current Change: 현재 위치한 branch(master)
  • Incoming Change: merge하고 싶은 곳(내가 생성한 branch)
profile
천방지축 빙글빙글

0개의 댓글