본문 바로가기
[도서 정리] 5. 분산 환경에서의 Git - ProGit 5. 분산 환경에서의 Git - ProGit 5.1. 분산환경에서의 워크플로 -중앙집중형 버전 관리 시스템(CCVS)에서는 각 개발자는 중앙 저장소를 중심으로 하는 하나의 노드일 뿐이다.하지만 git 에서는 각 개발자의 저장소가 하나의 노드이기도 하고 중앙 저장소 같은 역할도 할 수 있다.즉, 모든 개발자는 다른 개발자의 저장소에 일한 내용을 전송하거나, 다른 개발자들이 참여할 수 있도록 자신이 운영하는 저장소 위치를 공개할 수도 있다. * 중앙집중식 워크플로 * Integration-Manager 워크폴로 -다른 개발자는 읽기만 가능하고 자신은 쓰기도 가능한 공개 저장소를 만드는 워크플로.이 워크플로에는 보통 프로젝트를 대표하는 하나의 공식 저장소가 있다.기여자는 우선 공식 저장소를 하나 clone 하.. 2020. 1. 9.
[도서 정리] 4. Git 서버 - ProGit 4. Git 서버 - ProGit -리모트 저장소는 일반적으로 워킹 디렉터리가 없는 bare 저장소다.이 저장소는 협업용이기 때문에 체크아웃이 필요 없다.그냥 git 데이터만 있으면 된다.다시 말해 bare 저장소는 .git 디렉토리만 있는 저장소다. 4.1. 프로토콜 -Local, HTTP, SSH, Git 이렇게 네 가지 프로토콜을 사용할 수 있다. * 로컬 프로토콜 -리모트 저장소가 단순히 디스크의 다른 디렉터리에 있을 때 사용한다.팀원들이 전부 한 시스템에 로그인하여 개발하거나 아니면 NFS(Network File System) 같은 것으로 파일 시스템을 공유하고 있을 때 사용한다.이런 상황은 문제가 될 수도 있다.모든 저장소가 한 시스템에 있기 때문에 한 순간에 모두 잃을 수 있다. -$ git.. 2020. 1. 8.
[도서 정리] 3. Git 브랜치 - ProGit 3. Git 브랜치 - ProGit 3.1. 브랜치란 무엇인가 -Git 은 데이터를 변경사항(Diff)으로 기록하지 않고 일련의 스냅샷으로 기록한다.커밋하면 Git 은 현 staging area 에 있는 데이터의 스냅샷에 대한 포인터, 저자나 커밋 메시지 같은 메타데이터, 이전 커밋에 대한 포인터 등을 포함하는 커밋 개체(커밋 Object)를 저장한다.이전 커밋 포인터가 있어서 현재 커밋이 무엇을 기준으로 바뀌었는지를 알 수 있다.최초 커밋을 제외한 나머지 커밋은 이전 커밋 포인터가 적어도 하나씩 있고 브랜치를 합친 merge 커밋 같은 경우에는 이전 커밋 포인터가 여러 개 있다. -파일을 stage 하면 git 저장소에 파일을 저장하고(git 은 이것을 blob 이라고 부른다.) staging area.. 2020. 1. 7.
[도서 정리] 2. Git 의 기초 #2 - ProGit [도서 정리] 2. Git 의 기초 #2 - ProGit 2.4. 되돌리기 -되돌린 것은 복구할 수 없기 때문에 주의해야 한다. -이전 커밋에 추가 커밋하고 싶을 때는 git commit —amend 를 사용한다.마지막으로 커밋하고나서 수정한 것이 없다면 커밋 메시지만 변경된다. * 파일 상태를 Unstage 로 변경하기 -Staging Area 에 있는 파일을 Unstage Area 로 옮기려면 아래와 같이 한다.$ git reset HEAD … -git reset 명령을 —hard 옵션과 함께 사용하면 워킹 디렉터리 파일까지 수정되기에 조심해야 한다. * Modified 파일 되돌리기 -git checkout — [file] 을 통해 수정한 파일을 modified 전으로 되돌린다.이 명령은 원래 파일.. 2020. 1. 6.
[도서 정리] 2. Git 의 기초 #1 - ProGit 2. Git 의 기초 #1 - ProGit 2.1. Git 저장소 만들기 -Git 저장소를 만드는 방법은 두가지이다.기존 프로젝트나 디렉터리를 Git 저장소로 만드는 방법이 있고, 다른 서버에 있는 저장소를 Clone 하는 방법이 있다. * 기존 디렉터리를 Git 저장소로 만들기 -$ git init이는 .git 이라는 하위 디렉터리를 만든다..git 디렉터리에는 저장소에 필요한 뼈대 파일(skeleton)이 들어 있다. * 기존 저장소를 Clone 하기 $ git clone [url] [folderName]이는 folderName 이라는 폴더에 url 로부터 내용을 받아와 넣는다. -Git 은 다양한 프로토콜을 지원한다.https://git://user@server:path/to/repo.git ( S.. 2020. 1. 5.
[도서 정리] 1. 시작하기 - ProGit 1. 시작하기 - ProGit 1.1. 버전 관리란? * 로컬 버전 관리 -로컬 VCS (Version Control System) 으로 RCS(Revision Control System)이 많이 쓰인다.RCS 는 기본적으로 Patch Set(파일에서 변경되는 부분)을 관리한다. * 중앙집중식 버전 관리 (CVCS) -마지막 스냅샷만을 checkout 한다.그래서 중앙 서버에 문제가 생기면 프로젝트의 모든 히스토리를 잃을 수 있다. * 분산 버전 관리 시스템(DVCS) -Git, Mercurial, Bazaar, Darcs 등이 있다.DVCS 에서의 클라이언트는 단순히 파일의 마지막 스냅샷을 checkout 하지 않는다.그냥 저장소를 전부 복제한다.서버에 문제가 생기면 이 복제물로 다시 작업을 할 수 있.. 2020. 1. 4.
[도서 정리] 부록A. 많이 쓰는 앱과 언어에서 활용하는 정규식 - 손에 잡히는 10분 정규 표현식 부록A. 많이 쓰는 앱과 언어에서 활용하는 정규식 - 손에 잡히는 10분 정규 표현식 * grep -grep 은 파일이나 표준 입력된 텍스트를 대상으로 검색을 수행하는 유닉스 유틸리티다.grep 에서 다음 사항 중 하나를 선택하면, 기본, 확장, 펄(perl)과 호환되는 정규식을 쓸 수 있다. -E 로 확장 정규식 사용-G 로 기본 정규식 사용-P 로 펄 정규식 사용 -정규식이 지닌 정확한 특징과 기능은 어떤 선택 사항을 선택했는지에 따라 달라진다.대다수 사용자들은 표준에 가깝다는 이유로 펄 정규식을 선택한다. -기본적으로 grep 은 일치하는 부분이 있다면, 그 줄을 모두 표시한다. 만약 정확히 일치하는 부분만 보고 싶다면 -o 옵션을 쓴다.-v 옵션은 일치한 부분을 반전시켜 일치하지 않는 줄만 표시한.. 2020. 1. 3.
[도서 정리] 11. 정규 표현식으로 해결하는 일반적인 문제들 - 손에 잡히는 10분 정규 표현식 11. 정규 표현식으로 해결하는 일반적인 문제들 - 손에 잡히는 10분 정규 표현식 -여기서 제시한 예제들이 현존하는 문제 상황에 대한 궁극적인 해결책은 아니다.궁극적인 해결책 자체가 거의 존재하지 않는다는 점은 분명하다.예측하지 못하는 상황을 얼마나 허용할 것인지에 따라 해결책이 여러 개인 경우가 훨씬 많고 패턴의 성능과, 주어진 상황에서 얼마나 많은 조건을 다룰지 설정하는 패턴의 범위 사이에는 항상 교환 조건(trade-off)가 존재한다. * 북미 전화번호 * 미국 우편번호 * 캐나다 우편번호 * 영국 우편번호 * 미국 사회보장번호 * IP 주소 * URL -https?:\/\/[-\w.]+(:\d+)?(\/([\w\/_.]*)?)? 이 정규식은 대소문자를 구별해서는 안 된다. * 완전한 URL -.. 2020. 1. 2.
[도서 정리] 10. 조건 달기 - 손에 잡히는 10분 정규 표현식 10. 조건 달기 - 손에 잡히는 10분 정규 표현식 * 왜 조건을 다는가? -모든 정규식 구현에서 조건 처리를 지원하지는 않는다. * 조건 사용하기 -조건을 다는 구문 또한 물음표(?)를 사용하는데, 역참조를 사용하는 조건 처리와 전후방탐색을 사용하는 조건 처리에도 사용할 수 있다. ** 역참조 조건 -역참조 조건은 이전 하위 표현식이 검색에 성공했을 경우에만 다시 그 표현식을 검사한다. 여기서 태그를 모두 찾고, 로 감싸져 있을 때는 이 링크 태그까지 일치시킨다. (]+>\s*)?]+>(?(1)\s*) ?(1) 은 역참조1 ( 시작 태그)이 있을 때만 수행하라는 말이다.다른 말로, 태그 와 일치한다면 그 뒤의 종료 태그도 일치시키라는 의미이다. -?(1) 은 역참조 1이 있는지 없는지 검사한다.역참조.. 2020. 1. 1.
반응형