Merge: 6개의 글
오늘 다루어볼 내용은 git의 cherry-pick(체리픽)이다. 보통 체리픽을 사용하는 이유는 다른 브랜치의 커밋의 일부만 가져올때 많이 사용한다. 간단하게 예제를 다루어보자. > gb * [1] feature/add-function [2] feature/update-function 위처럼 두개의 브랜치가 존재하고 각 브랜치의 커밋로그는 아래와 같다. > feature/add-function * 13e321a - (HEAD -> feature/add-function) add c.txt (9 minutes ago) * f894b25 - add b.txt (9 minutes ago) * 35402a1 - add a.txt (9 minutes ago) > feature/update-function * cb6..
Git에서 한 브랜치에서 다른 브랜치로 합치는 방법은 두 가지다. 하나는 이전 포스팅에서 다룬 Merge이고 다른 하나는 Rebase이다. Rebase 상황을 이전 포스팅에서 다루어봤던 merge 상황이랑 비교해보자. Git - fast-forward merge 란? fast-forward & 3-way Merge의 차이점 아래와 같은 상황이 있다. 이 상황에서 3-way-merge를 하면 그래프상태는 아래와 같은 상태가 된다. #current branch master > git merge issue-1 그런데 Rebase를 하면 어떻게 될까? #current branch issue-1 > git rebase master > git checkout master > git merge issue-1 실제로 ..
1. fast-forward merge 아래와 같은 상황이 있다고 가정하자. issue 처리를 위해 master 브랜치에서 브랜치를 따서 작업을 하고 있었다. 갑자기 픽스해서 빠르게 릴리즈해야할 버그 사항이 있어 hotfix 브랜치를 master 기준으로 따서 작업을 했다. 버그를 픽스하고 테스트를 통과해 이제 릴리스 해야하는 상황이다. 이제 master에 hotfix를 머지해야되는 상황이다. 그런데 hotfix는 master를 베이스로 하고 있는 브랜치, 즉 master의 upstream 브랜치이다. 이제 머지를 하면 fast-forward 머지가 되는 것인데, 이것은 단순히 master가 바라보고 있는 커밋을 앞으로 이동하는 것(hotfix 브랜치가 가르키는 커밋을 master가 바라본다.) 뿐이다...
브랜치 생성은 다음과 같이 New Branch를 생성한다. 다음과 같이 브랜치 명을 입력하고 check out new branch로 되어 있는지 확인하자 check out new branch는 해당 branch로 생성과 동시에 전환한다는 의미이다. 다음과 같이 알럿이 나오는 경우가 있다, 내용은 이 톰캣 서버를 이 저장소의 프로젝트에서 확실하게 작동하고 사용하는지 묻는 알럿이다. Continue Anyway? 어쨋든 진행할거야? 하고 묻는다. 계속하자 다음과 같이 git master에서 git hotfix로 checkout된 것을 확인할 수 있다. 그럼 이번엔 코드를 조금 수정해서 확인해보도록하자 hotfix branch에 있는 home.jsp 코드를 다음과 같이 수정했다. 해당 수정 내용은 hotfix..
브랜치 목록 조회 전달인자 -r을 사용하여 원격브랜치 조회 합니다. git branch *master 브랜치명 변경 전달인자 m은 이동을 의미 합니다. git branch -m master mymaster git branch *mybranch 브랜치명 강제 변경 브랜치명을 변경할때 이미 이름이 존재한다면 진행되지 않는데 -M의 명령어를 사용하면 덮어쓰기로 강제 진행됩니다. git branch -M master mymaster 새로운 브랜치 생성 git branch new git branch *master new 브랜치 체크아웃 git checkout new Switched to branch 'new' git branch master *new 새로운 브랜치 생성하고 체크아웃 git checkout -b 새..
GIT에 대하여 ... 버전관리시스템(version control system, VCS)는 사용자 프로젝트에 포함된 파일의 변경사항을 추적할 수 있도록 돕는 방법론이나 도구를 말합니다. 분산 버전관리 시스템(Distributed version control system, DVCS)도 위와 같은 점에서 기존 버전관리 시스템과 차이가 없습니다. 다만 버전관리 시스템과 분산 버전관리 시스템은 개발자들 간의 변경사항을 반영하고 공유하는 방식이 다르다고 보면 됩니다. 저장소(Repository) 버전관리 시스템에서 저장소(Repository)는 사용자가 변경한 모든 내용을 추적하는 특별한 공간입니다. 대부분의 버전관리 시스템은 코드의 현재상태는 물론이고 변경이 언제 발생했는지, 누가 변경했는지, 변경사항을 설명하..