형상관리: 79개의 글
BRANCH활용하기 기본적으로 하나의 브랜치 즉 마스터브랜치(타:trunk)만 사용해도 버전관리 시스템이 제공하는 모든 이점을 얻을 수 있습니다. BRANCH란? 우리는 일반적으로 여러가지 작업을 번갈아 가며 진행합니다. 새로운 기능을 추가하거나 유지보수가 쉽도록 리팩터링할 수도 있고 이따금씩 발생하는 버그를 수정하기도 합니다. 어떠한 작업도 무시할 수 없으며 적절히 균형을 마추며 진행해야 합니다. 단방향 이력은 이러한 요구를 다루리가 쉽지 않습니다. 그래서 브랜치가 필요합니다. git에서는 모든 것이 브랜치로 간주되므로 브랜치를 생성하는 비용이 크지않습니다. 모든 파일을 새로운 디렉토리로 복사하는 다른 시스템들과는 다르게 git의 브랜치는 해당 브랜치가 만들어진 시점부터 적용된 커밋만 추적합니다. 최신..
GIT에 대하여 ... 버전관리시스템(version control system, VCS)는 사용자 프로젝트에 포함된 파일의 변경사항을 추적할 수 있도록 돕는 방법론이나 도구를 말합니다. 분산 버전관리 시스템(Distributed version control system, DVCS)도 위와 같은 점에서 기존 버전관리 시스템과 차이가 없습니다. 다만 버전관리 시스템과 분산 버전관리 시스템은 개발자들 간의 변경사항을 반영하고 공유하는 방식이 다르다고 보면 됩니다. 저장소(Repository) 버전관리 시스템에서 저장소(Repository)는 사용자가 변경한 모든 내용을 추적하는 특별한 공간입니다. 대부분의 버전관리 시스템은 코드의 현재상태는 물론이고 변경이 언제 발생했는지, 누가 변경했는지, 변경사항을 설명하..
백업해둔 프로젝트를 내 컴퓨터로 받아오거나 협업을 위해 새로운 개발자가 프로젝트를 로컬 저장소로 받아와야하는 경우가 있다. 이때 clone을 통해 로컬 저장소에 원격 저장소에 있는 프로젝트를 가져올 수 있다. STEP01.GitHub에 있는 가져올 원격 저장소에 접근하여 HTTPS 값을 복사한다. STEP02.SourceTree에서 왼쪽 하단의 "Add Repository"버튼을 누른다. STEP03."Clone Repository"탭에서 "Source Path/URL"에 복사해둔 HTTPS값을 붙여넣고 "Destination Path"에 받아온 프로젝트를 저장해둘 경로를 지정해준다. 마지막으로 "Bookmarks"에 SourceTree에 표시할 저장소의 이름을 지정해주고 "Clone"버튼을 누른다. S..
GitHub에 로컬 저장소의 프로젝트를 최초로 동기화한 이후 로컬 저장소 프로젝트에 변경 사항이 발생하여 수정을 하였다. 이 경우 다시 push를 통해 로컬 저장소와 원격 저장소를 동기화 해주어야 한다. STEP01.프로젝트의 소스코드를 수정하고 commit과정을 거친다. 위의 그림과 같이 새로운 버전이 생성이 되었다. 여기서 버전 목록을 보게 되면 최신 버전이 master 브랜치로 되어있고 그 바로 밑의 버전에 origin의 master 브랜치로 표시 되어있다. 이것은 아직 로컬 저장소와 원격 저장소를 동기화 하지않아 두 개의 저장소 사이에 하나의 버전이 차이난다는 것을 보여주는 것이다. 또한 상단의 "Push"버튼에 1이라는 숫자가 보이는데 이것 또한 로컬 저장소와 원격 저장소가 하나의 버전이 차이난..
앞서 GitHub를 통해 생성한 원격 저장소를 내 컴퓨터에 존재하는 로컬 저장소와 연결을 하였다. 이렇게 연결한 원격 저장소에 내 컴퓨터에서 작업하던 프로젝트를 백업 또는 협업하기 위해 프로젝트를 동기화할 수 있다. 이것을 push라 한다. STEP01.SourceTree에서 해당하는 로컬 저장소를 선택한 뒤 상단 메뉴의 "Push"버튼을 누른다. STEP02.상단의 선택 메뉴에서 프로젝트를 올리고자 하는 원격 리포지토리를 선택하고 (origin 또는 또 다른 원격 저장소) 다음으로 올리고자 하는 branch를 선택한다. 마지막으로 "OK"버튼을 누른다. STEP03.Username과 Password를 입력하라는 창이 나오면 자신의 GitHub 계정을 입력하면 된다. STEP04.push가 완료되면 아래..
프로젝트를 다른사람과 협업하기 위해, 또는 자신의 프로젝트를 안전하게 유지하기 위해 자신의 컴퓨터가 아닌 다른 곳에 저장을 해두어야 한다. 이러한 기능을 GitHub에서 제공하는 저장소를 사용할 수 있는데 이러한 자기 자신의 컴퓨터에 있는 로컬 저장소가 아닌 외부에 있는 저장소를 원격 저장소라고 한다. GitHub에 원격 저장소를 생성하고 자신의 컴퓨터에 있는 로컬 저장소와 연결하는 방법은 아래와 같다. STEP01.GitHub(https://github.com)에 접속하여 회원가입을 하고 로그인을 한다. STEP02.화면 우측에 있는 "New repository" 버튼을 누른다. STEP03."Repository name"란에 저장소의 이름을 쓰고 하단의 "Create repository" 버튼을 누른..
앞에서 배운 branch를 통해 하나의 프로젝트에 두 가지의 다른 작업을 동시에 진행하며 Git에서 버전관리를 받는 것을 배웠다. 이번에는 앞서 예를 들었던 두 가지의 작업이 시간이 지나 모두 완성되었다고 한다. 그렇다면 이 두 개의 작업을 하나의 버전으로 만들어 서비스를 제공해야 할 것이다. 이 때 진행되던 이 두개의 작업를 하나로 합치는 것을 merge라고 한다. STEP01.합칠 branch를 checkout 한다. (다른 branch를 가져와서 원본으로 만들 branch)※ checkout : branch를 선택하는 것. checkout 하는 branch에 따라 소스코드가 바뀐다. STEP02. 가져올 branch를 마우스 오른쪽 클릭을 하고 "Merge 실험 into current branch"..
만약 프로젝트에 새로운 기능을 추가하고자 한다. 동시에 기존의 프로젝트에서 발생하는 버그와같은 수정사항을 고쳐야 하는 상황이다. 그렇다면 다른 방향의 두 가지의 작업을 함께 진행 하여야하는데 만약 새로운 기능을 추가하는 작업이 취소되거나 수정되어 기능을 추가하기 전의 상태로 돌아가야하는 상황이 발생할 수 있다. 하지만 이 때 Git을 통해 이전의 상황으로 돌아갈 경우 동시에 작업하던 프로젝트의 수정 작업 역시 사라지고 이전 상태로 돌아가는 문제가 발생한다. 이때 Git의 branch 개념이 필요하다. STEP01.상단 메뉴의 Branch 버튼을 클릭한다. STEP02.새롭게 만들 Branch의 이름을 쓰고 Create Branch 버튼을 누른다. STEP03.다음과 같이 하나의 리포지토리에 두 개의 브랜..
앞에서 배운 reset과 마찬가지로 이전의 버전으로 돌아가기 위해 revert를 사용할 수 있다. STEP01.취소할 버전을 선택하고 해당 버전에 마우스 오른쪽 클릭을 한다. 팝업이 뜨면 "Reverse commit"을 누른다. STEP02.Confirm reverse commit 팝업이 뜨면 Yes를 누른다. STEP03.다음과 같이 revert로 선택한 "Circle클래스 수정"을 취소하는 버전인 "Revert "Circle클래스 수정"이 commit 되었다. 소스코드 역시 "Circle클래스 수정" 버전을 실행하기 전인 "mainCode 수정 Circle 선언" 버전으로 돌아간다. ※ reset과 revert의 차이점reset은 선택한 버전을 reset할 경우 선택한 버전의 이후 버전을 모두 삭제하..
프로젝트가 진행되던 도중 문제가 발생하여 이전의 버전으로 돌아가야 하는 상황이 발생한다. 이때 돌아가길 원하는 버전으로 reset을 통해 되돌릴 수 있다. STEP01.되돌아갈 버전을 선택하고 마우스 오른쪽 버튼을 클릭하고 "Reset current branch to this commit"을 누른다. STEP02. Reset to Commit 창이 아래와 같이 뜬다. 여기서 3가지의 mode가 존재하는데 Soft, Mixed 그리고 Hard는 다음을 의미한다. 원하는 mode를 선택 후 OK를 클릭한다. 1) Soft : index에 올라온 수정사항 보존, working tree에 올라온 수정사항 보존 2) Mixed : index에 올라온 수정사항 취소, working tree에 올라온 수정사항 보존 ..