본문 바로가기

SCM

(41)
10. 브랜치 충돌 예방하기 브랜치를 너무 많이 방치하지 않는다. 가능하다면 몇 주나 몇 달 단위로 계속해서 마스터 코드의 내용을 새로운 브랜치에 병합해 줘야 한다. ( 새로운 브랜치를 마스터 브랜치로 병합 하라는게 아니고 마스터 브랜치의 내용을 새로운 브랜치로 병합하라는 것. )
09. 브랜치 충돌 해결하기 Conflict 위에서는 소스가 서로 다른 부분만 고쳤기 때문에 아름답게 병합이 끝났지만 대부분의 경우 같은 부분을 서로 고치기 때문에 충돌이 일어난다. 이번에는 이런 충돌 사항을 해결하는 방법을 배워보자. 1. 브랜치 하나 만들기 나는 NewBranch2 라는 브랜치를 하나 더 생성했다. 그리고 코드는 아래와 같이 수정해서 커밋했다. 2. 마스터 브랜치에도 같은 라인에 커밋하기 마스터 브랜치를 활성화하고 같은 라인에 새로운 내용을 입력하고 커밋해보자. 3. 병합을 시도하기 아래와 같이 병합을 시도해보자. 4. 메시지 확인 충돌이 났다고 알려준다. 5. 파일 확인 파일을 열어보니 아래와 같이 파일이 변경되었다. 이 부분은 프로그램이 풀 수 없으므로 사용자에게 수정하라고 아래와 같이 코드를 박아준다. 필요..
08. 브랜치 합치기 Merge 두개의 프로젝트가 각각 성공했다고 가정해서 새로운 브랜치를 마스터 브랜치로 합쳐보자. 1. 마스터 브랜치를 활성화 한다. 마스터 브랜치를 더블클릭하여 체크 버튼이 오도록 만든다. 2. 현재 브랜치로 NewBranch 병합을 클릭한다. 3. 병합 확정을 한다. 다이얼로그가 뜨면 OK 를 클릭한다. 4. 결과확인 병합 전 마스터 브랜치 내용 병합 전 새로운 브랜치 내용 병합 후 최종 브랜치 내용
07. 브랜치 만들기 불확실성을 가지는 기능을 추가하려고 할 때 메인 코드를 기준으로 계속 커밋하다가 그 기능을 구현하지 못했다고 하면 되돌아가려고 엄청난 노고를 들이거나 불가능할 수 있다. 즉 프로젝트에 실험적인 일이 추가되었을 때 메인 브랜치를 기준으로 ( Git 에서는 master 라고 이름이 지어졌다. ) 새로운 브랜치를 뜨고 이를 바탕으로 모험이 필요한? 프로젝트를 시작한다. ( 즉 현재 기준으로 프로젝트 통째로 복사해서 따로 일을 하는 것 ) 그리고 만약에 성공한다면 이를 메인 브랜치에 병합한다. 병합하기는 정말 어렵다. Git 은 이런 경우에 대한 해답을 제시한다고 한다. 이런 작업을 위한 초석인 브랜치 만들기에 대해 배워보자. 브랜치 만들기 1. Original 코드 확인 Original 커밋은 아래와 같이 짠..
06. 코드 리버트하기 Revert 리버트는 복귀의 의미를 가진다. 즉 기존 커밋한 내용을 삭제하지 않으면서 이전 버전으로 되돌아가고 싶을 때 사용한다. 어떤 특정 버전까지 리버트 하기 위해서는 하나하나 뒤로 되돌려야 한다. "여러 버전을 건너뛰어 Revert 하게 되면 충돌이 발생 하게 된다." "순차적으로 Revert 해야 안전하다." 사실 충돌이 나면 풀기가 어렵다. 코드를 하나 하나 따라가 보면서 고쳐야 하는데 이게 여러명이 작업하고 마구 코드를 올린 상황이면 정말 암담하다. 남의 코드는 용도를 모르니깐.. 사용에 주의를 기울이자. 1. 순차적으로 커밋 되돌리기 목표가 커멘트가 "1" 인 내용까지 커밋 되돌리기를 하는 것이라고 가정하자. 먼저 맨 처음 체크인 한 내용을 "커밋 되돌리기" 로 되돌린다. 이렇게 되면 그 아..
05. 코드 리셋하기 "폐기(Discard)" 기능은 아직 커밋하지 않은 코드를 최종 커밋한 내용으로 바꿔주는 기능이다. 아직 커밋하지 않은 파일을 되돌리기 1. 기존파일 아래와 같은 파일을 Commit 한 상태에서 2. 파일 수정하기 ccc 를 지우고 SourceTree 를 확인해보면 아래와 같이 변경된 내용이 보인다. 3. 폐기(Discard) 하기 이 상태에서 폐기(Discard) 를 누르면 아래와 같은 다이얼로그가 나타나고 OK 를 누르면 마지막 Commit 한 내용으로 해당 파일이 복원된다. 이미 커밋한 파일을 이전 커밋한 파일로 되돌리기 - Hard 옵션 커밋한 내용이 맘에 들지 않아서 아예 이전 코드로 되돌리려는 경우는 아래의 사항을 따르면 된다. 아래 사항을 따르면 선택한것 이후의 버전들은 모두 사라지고 최종 ..
04. 스테이지 공간 Stage 스테이지 공간은 Git 만의 강력한 장점이다. 아래와 같이 Commit 하기 전에 코드를 이전 버전과 현재 버전을 비교나 수정할 수 있게 해준다. 1. 파일을 하나 만들고 Source Tree 를 보자. 2. 이 파일을 일단 아래와 같이 스테이지에 해당 파일을 올린다. 3. 해당 파일을 수정하고 저장하자. 4. SourceTree 를 다시 보면 하나의 파일을 수정전과 수정 후의 상태로 보관하고 있음을 알 수 있다. 5. 위 아래 어떤 파일이라도 필요 없다면 폐기할 수 있다. 결론 즉 이것이 Git 이 가지고 있는 SVN 에서 볼 수 없던 특성이고 장점이다. Stage Area 라는 저장 공간을 하나 더 만들어 놓고 Commit 하기 전에도 이전 파일과 현재 파일을 비교해서 수정할 수 있게 해주..
03. 버전 만들기 ( Commit ) 1. 로컬 저장소에 파일추가 로컬 저장소에 파일을 하나 추가해보자. 2. Repository 확인 이 상태에서 Source Tree 를 실행하면 아래와 같이 변경된 사항이 있음을 알 수 있다. 3. 커밋 시도 해당 파일의 Check Box 버튼을 누르고 Commit 을 누른다. 4. 커밋 시도 커멘트를 적고 아래 보이는 커밋을 누른다. 5. 커밋 에러의 이유 현재 자신이 누군지 등록해놓지 않았기 때문에 니가 누구냐 하고 에러가 나는걸 알 수 있다. 6. 커밋할 사용자 정보 입력 자신의 정보를 입력하기 위해 도구의 옵션으로 들어간다. 7. 커밋할 사용자 정보 입력 아래와 같이 개인 정보를 넣는다. 8. 커밋하기 다시 커밋을 누른다. 9. 커밋한 내용 확인 브랜치의 master 를 눌러보면 내가 입력한 파일..