일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 가장먼노드
- 카카오인턴
- 11723
- 이진검색
- 플로이드워셜
- 전화번호 목록
- 프로그래머스
- 쇠막대기 문제
- @Profile
- 백준
- bitmasking
- sope
- 이진탐색
- Singtone
- Algorithm
- 토비의스프링
- BinarySearch
- 플로이드와샬
- 알고리즘
- 카카오
- 자바
- Spring
- 그래프
- 스프링
- 스프링프로젝트 시작하기
- Java
- Spring이란
- 스프링이란
- 구현
- 징검다리
- Today
- Total
육감적 코딩
12.1 refs 커밋은 고유의 SHA1 해시 값을 가지고있습니다. 깃은 참조하는 해시 값을 refs 목록으로 가지고있습니다. 12.1.2 해시 깃의 동작에있어 해시값은 중요합니다. 생성된 모든 해시값은 show 명령어로 상세 정보를 확인할 수 있습니다. $ git show 12.1.3 역조회 브랜치 이름을 사용하여 참조하는 해시 값을 조회할 수 있습니다. rev-pars 명령어 $ git rev-parse 12.1.4 참조 목록 깃에서는 생성된 해시 값을 쉽게 참조할 수 있도록 refs 목록을 생성합니다. 깃의 모든 refs 목록은 저장소의 .git/refs 폴더 안에 저장됩니다. 해시 값의 별칭도 .git/refs 폴더 안에서 생성 및 관리할 수 있습니다. 12.2 reflog 깃은 참조된 모든 re..
11.1 대형 프로젝트 깃은 작은 프로젝트뿐만 아니라 큰 규모의 프로젝트도 관리하기 쉽도록 저장소를 여러 개 이용하여 단일 프로젝트를 진행할 수 있습니다. 11.1.1 저장 용량 깃 저장소는 용량 한계가 없습니다. 깃은 파일을 기반으로 데이터베이스를 관리합니다. 11.1.2 저장소 분리 용량이 크기만 한 저장소는 비효율적입니다. 필요에 따라 분할 운영하는 것이 좀 더 효율적입니다. 깃은 저장소 하나를 작은 저장소 몇 개로 분할할 수 있습니다. 이러한 저장소의 분할 개념을 서브모듈이라고 합니다. 서브 모듈은 저장소 하나가 다른 깃 저장소를 포함하는 형태를 의미합니다. 11.1.3 상하 관계 큰 규모 프로젝트는 모듈화하여 개발하는 추세. 각 기능들을 모듈화하여 독립된 깃 저장소로 관리합니다. 메인 저장소와 ..
10.1 배포 인터넷이 발달하면서 과거의 물리적인 배포 대신 온라인으로 배포합니다. 배포 프로세스가 빨라지면서 코드를 안정적으로 유지하고 테스트하는 것이 더 중요해졌습니다. 배포를 잘하려면 코드를 깔끔하게 정리할 수 있는 환경이 필요합니다. 또 사용자가 파일을 쉽게 내려받을 수 있게 해야 합니다. 이러한 이유로 깃은 코드를 배포하는 데도 많이 사용합니다. 10.2 버전 코드는 개발을 완료한 후에도 계속 수정됩니다. 코드를 수정했다면 이러한 차이를 구별할 수 있게 하는 것이 바로 버전(version) 입니다. 버전업(version up)은 오래된 버전의 프로그램을 최신 버전의 코드로 변경하는 것을 의미합니다. 기본적인 버전은 단일 번호 하나로 구성되어 있습니다. 0은 초기 개발 중인 제품이라는 의미입니다...
9.1 되돌리기 9.1.1 다시 시작 깃에서 코드 작업을 되돌리는 방법은 크게 reset 과 revert 두 가지입니다. 9.2 리셋 리셋(reset)은 커밋을 기준으로 이전 코드로 되돌리는 방법으로, 기록한 커밋을 취소합니다. 9.2.1 복귀 시점 커밋 메시지는 여러줄로 작성할 수 있습니다. 로그 기록은 그중 첫 번째 줄 메시지만 출력합니다. 그러므로, 첫 번째 줄에 요약정보를 입력하고, 한줄을 띄우고 좀 더 상세한 내용을 작성하면 좋습니다. 9.2.2 reset 명령어 reset 명령어를 사용하면 지정된 커밋 코드로 되돌아갑니다. $ git reset reset 명령어의 옵션 soft : 스테이지 영역을 포함한 상태로 복원합니다. mixed : 기본 옵션 값은 mixed 입니다. hard : 실제 파..
8.1 병합 독립된 브랜치를 한 브랜치로 합치는 작업을 의미. 8.1.1 하나씩 직접 비교하는 수동 병합 여러 개발자와 코드를 공유하면서 변경된 소스를 수동으로 병합하는것은 매우 어려움. 8.1.2 깃으로 자동 병합 깃은 원본 기준으로 두 파일의 변경 이력을 비교하여 병합. 깃이 모든 코드의 병합을 완벽하게 처리할 순 없음. 8.2 Fast-Forward 병합 순차적 커밋에 맞추어 병합을 처리하는 방식. 일반적으로 혼자 개발할 때 사용. 브랜치 경로가 일직선 모양일 때 병합 작업을 하면, Fast-Foward 방식의 알고리즘이 적용. (소스트리 모양) 8.2.2 병합 위치 merge 명령어 $ git merge merge 명령어는 현재 브랜치를 기준으로 다른 브랜치의 모든 커밋을 병합. 8.2.3 Fas..
7.1 스태시 스태시 명령을 실행하면 현재 작업 중인 내용은 임시 저장되고, 수정 전 마지막 커밋 상태로 돌아갑니다. 7.1.3 스태시의 임시 스택 영역에 작업 중인 코드 저장 스태시 명령어는 수정 중인 내역을 커밋하지않고 브랜치를 이동할 수 있게 워킹 디렉터리를 깨끗이 청소합니다. 스태시는 현재 작업들을 임시 스택 영역에 저장합니다. $ git stash 또는 $ git stash save $ git stash save "WIP: 메시지" 스태시는 스택 구조로 여러 번 실행하여 저장할 수 있습니다. 각각의 스태시를 구분하기위해 메시지를 추가할 수 있습니다. 7.1.4 임시 저장 영역의 스택 목록 스태시에 저장된 스택은 list 옵션으로 확인할 수 있습니다. $ git stash list stash@{}..
6.1 새로운 작업 브랜치(branch)는 나뭇가지, 지사, 분점 등 줄기 하나에서 뻗어 나온 갈림길을 의미합니다. 6.1.1 브랜치 작업 브랜치는 프로젝트를 독립적으로 관리하는데 사용합니다. 개발자는 항상 안정된 코드 상태를 유지하고, 개발 중인 작업과 구분하여 관리해야 합니다. 6.1.2 깃 브랜치 특징 가상폴더 깃의 브랜치는 작업 폴더를 실제로 복사하지않고, 가상 폴더로 생성합니다. 브랜치로 생성된 가상 폴더는 빠르게 공간 이동이 가능합니다. 독립적인 동작 브랜치를 이용하면 원본 폴더와 독립적으로 개발할 수 있습니다. 분리된 브랜치에서 소스 코드를 각자 수정한 후 원본 코드에 병합하는 명령만 실행하면 됩니다. 빠른 동작 다른 VCS들은 브랜치를 생성할 때 내부 파일 전체를 복사합니다. 파일 크기가 ..
5.1 서버 저장소 서버 저장소는 다른 말로 원격(remote) 저장소라고도 합니다. 5.1.1 협업 저장소 깃은 여러 개발자와 협업하려고 탄생한 도구입니다. 인터넷에 연결하여 작업할 수 없는 개발환경도 많이 있기때문에 이 두 가지 환경을 고려하여 분산형 모델을 선택했습니다. 5.1.2 연속된 작업 서버 저장소는 여러 컴퓨터에 동일한 깃 저장소를 복제하고, 작업한 결과물을 다시 서버로 통합합니다. 5.1.3 새 멤버 새 멤버가 추가 되어도 깃은 깃의 원격 저장소 주소만 알려 주면 모두 해결됩니다. 5.2 깃허브 서버 준비 5.2.2 저장소 생성 한 소유자 안에서 같은 저장소 이름은 중복하여 생성할 수 없습니다. 5.3 깃허브 연동 및 원격 등록 5.2.1 로컬 저장소 로컬 저장소를 원격 저장소에 연결하는..