차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판이전 판다음 판 | 이전 판 | ||
wiki:sw:git [2023/06/14 16:19] – 제거됨 - 바깥 편집 (Unknown date) 127.0.0.1 | wiki:sw:git [2025/01/17 00:50] (현재) – Obsidian transfer clockoon | ||
---|---|---|---|
줄 1: | 줄 1: | ||
+ | Git | ||
+ | ==== | ||
+ | |||
+ | ## 개요 | ||
+ | Git은 2021년 현재 가장 많이 쓰이는 버전 관리 소프트웨어다. | ||
+ | |||
+ | ## 개념 | ||
+ | ### worktree | ||
+ | 다른 버전 관리 시스템과 달리, git은 크게 3가지 공간에서 파일을 다룬다. 저장소(repository)는 작업한 내용(파일 추가, 수정 등)이 저장되는 실제적 공간이다. 저장소의 작업 내용은 `.git` 디렉토리 안에 저장된다. 워크트리(worktree)는 사용자가 실제로 작업을 수행하는 공간을 뜻한다. 워크트리에서 수정한 내용을 저장소에 반영하기 위해서는, | ||
+ | |||
+ | #### worktree 지정 | ||
+ | git은 기본적으로 (로컬)저장소와 워킹트리가 같은 장소에 있다. 즉 .git 디렉토리는 워킹트리의 하위에 위치하며, | ||
+ | |||
+ | ## 명령어 | ||
+ | - `git status`: 현재 git 상태. | ||
+ | - `git branch < | ||
+ | - `git checkout < | ||
+ | - `git checkout -b < | ||
+ | - `git push`: 로컬 저장소의 커밋 내용을 리모트에 업로드한다. | ||
+ | - `git config`: git 설정을 관리. | ||
+ | - `git config --list`: 현재 git 설정값을 출력. | ||
+ | |||
+ | ## Use cases | ||
+ | 실제 사용 과정에서 자주 발생하는 케이스에 대한 정리. | ||
+ | |||
+ | ### 로컬 저장소간 충돌 | ||
+ | 원격 저장소에서 각각 로컬 저장소 A, 로컬 저장소 B로 내용을 클론했다고 하자. 그리고 A와 B가 각각 컨텐츠를 수정하고 커밋했다고 하자. 이 경우 A가 저장소를 푸시한 다음 B가 푸시하려 한다면 어떤 일이 발생할까? | ||
+ | |||
+ | 1. A/B가 수정한 파일이 다를 경우: 각각 수정이 원격 저장소에 반영된다. | ||
+ | 2. A와 B가 같은 파일을 수정한 경우, 둘 중의 한 방법을 택한다. | ||
+ | 1. merge를 진행한다. | ||
+ | 2. stash를 통해 B의 로컬 변경 내용을 임시 저장한 다음, pull한 결과와 대조하여 수동으로 변경한다. | ||
+ | |||
+ | ### 원격 브랜치 가져오기 | ||
+ | - `git remote update`로 원격 브랜치 목록 업데이트 | ||
+ | - `git branch -a`로 사용 가능한 브랜치 목록 확인 | ||
+ | - `git checkout -t [BRANCH]`로 원격 브랜치 체크아웃. | ||
+ | ---- struct data ---- | ||
+ | pageinfo.status | ||
+ | ---- | ||