본문 바로가기

프로그래밍/git5

[git] merge, squash & merge 그리고 rebase의 원리에 대해서 알아보자 안녕하세요. 오늘은 merge와 squash & merge 그리고 rebase의 차이점에 대해서 알아보는 시간을 가지도록 하겠습니다. 오늘은 이론적인 부분에 대해서만 말씀드릴 것이며 명령어를 실습하는 것은 다음시간에 이어서 진행하도록 하겠습니다. branch 병합 개발은 혼자 진행할 수도 있지만 대개는 여러명이 팀을 이루어 함께 개발을 합니다. 이럴 경우 github, gitlab과 같은 원격 저장소를 이용하여 코드의 형상관리를 하게됩니다. 이때 branch라는 개념을 이용하여 각자가 맡은 기능에 대한 개발을 진행하고 개발이 완료되면 master와 같은 base 브런치에 병합(merge)한 후 하나가 된 base의 코드를 서버에 배포하는 과정을 거치게됩니다. 위 이미지는 1개의 base 브런치에서 2개의.. 2021. 10. 2.
[git] git stash에 대해서 알아보자 안녕하세요. 오늘은 git stash 명령어에 대해서 알아보는 시간을 가져보도록 하겠습니다. git stash 명령어는 언제 사용하는가 ? stash 저장소는 임시저장소입니다. 프로젝트에서 작업을 하고 있었습니다. 그런데 다른 요청이 들어와서 다른 일을 먼저 진행하게 되었습니다. 해당 요청을 처리하기 위해서는 branch의 전환이 필요합니다. 하지만 branch를 전환하기 위해서는 Index Storage의 데이터를 비워야합니다. 그러기 위해 commit을 이용할 수 있습니다. 하지만 commit은 커밋 로그가 남으며 원하는 목적과 동떨어집니다. 이럴때 임시 저장소로 사용할 수 있는것이 바로 stash 명령어이며 이 명령어는 stash Area를 사용합니다. git repository의 종류 [git] .. 2021. 4. 13.
[git] git을 이용한 버전관리 - 기본편 (remote, push, pull, fetch, clone) with github 안녕하세요. git에 대해서 이야기하는 3번째 시간입니다. 오늘은 원격 저장소(remote repository)과 이를 이용하는 명령어인 push, pull, fetch, clone에 대해서 알아보도록 하겠습니다. git의 component 구조 이전 시간까지는 혼자서 작업하는 내용의 버전을 관리하는 방법이 었다면 이번시간부터 배우는 원격저장소를 이용하면 공동으로 협업할 수 있는 시스템 아키텍처가 그려지게됩니다. 원격저장소를 포함하면 2가지의 관점에서 구조적인 이미지를 그려볼 수 있습니다. 첫번째는 개인 관점에서의 git 이용 flow, 또 다른 한 관점은 다른 사람과의 공동으로 원격저장소의 사용입니다. 첫번째 git에 관한 포스팅에서 git의 3가지 컴포넌트에 대해서 이야기 했던 적이있습니다. 아래 이.. 2020. 4. 18.
[git] git을 이용한 버전관리 - 기본편 (tag, alias) 안녕하세요. 오늘은 저번 포스터에 이어서 git의 명령어에 대해서 추가적으로 알아보는 시간을 가지도록 하겠습니다. 이전에 보았던 명령어들이 git으로 버전관리를 하는 아주 기본적인 부분이라고 한다면 이번 포스팅에서 알아볼 명령어들은 조금은 더 고급진(?) 명령어들이라 할 수 있을 것 같습니다. alias alias는 git 명령어에 별명을 붙여주는 명령어입니다. 우리가 git 명령어를 쓰다보면 명령어 자체가 길다고 느껴질 때가 있습니다. 예를 들어 git commit -m ""라는 명령어가 있습니다. git add 와 함께 많이 사용하는 명령어지요. 이 명령어를 commit 하고싶을때 마다 풀로 입력한다면 귀찮다고 생각되어질 수 있습니다. 이때 alias 명령어를 사용한다면 좀 더 줄여서 사용할 수 있습.. 2020. 4. 10.
[git] git을 이용한 버전관리 - 기본편(add, commit, status, log, reset) work-flow git은 3가지의 컴포넌트를 가지고 있습니다. work-tree work-tree는 working diredtory라고도 불리며 현재 작업중인 디렉토리에 들어있는 수정가능하며 읽을 수 있는 모든 파일이 들어있는 컴포넌트라고 생각하시면 됩니다. index index는 staging area라고 불리며 commit 되기전 준비단계가 보존되는 컴포넌트입니다. index는 work-tree에 있는 file중 변경되어져 commit 되어질 파일들이 모여있는 컴포넌트입니다. work-tree에 있는 file중 한 파일을 변경 한다면 index 컴포넌트에서 수정되었다는 마크처리를 해둡니다. repository 레포지토리는 컨테이너라고도 불립니다. 해당 컴포넌트는 프로젝트 파일들의 변화를 축적합니다... 2020. 3. 26.