일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 프로그래머스스쿨
- Java
- 자바스크립트
- array
- SpringBoot
- SSL
- StringBuilder
- event
- Swing
- GIT
- docker
- 객체
- synchronized
- JS
- 저장소
- JavaScript
- join()
- class
- thread
- AssertJ
- c#
- 클래스
- 스프링부트
- 파이썬
- Docker Desktop
- Dict
- 메소드
- Python
- 자바
- 배열
- Today
- Total
정리노트
[기타/Git] git 의 상태 관리 / 저장소 만들기 본문
- 세 가지 상태 -
Git은 파일을 Committed, Modified, Staged 이렇게 세 가지 상태로 관리한다.
1. Committed
데이터가 로컬 데이터베이스에 안전하게 저장됐다는 것을 의미한다.
2. Modified
수정한 파일을 아직 로컬 데이터베이스에 커밋하지 않은 것을 말한다.
3. Staged
현재 수정한 파일을 곧 커밋할 것이라고 표시한 상태를 의미한다.
- 세 가지 단계 -
1. Git 디렉토리
Git이 프로젝트의 메타데이터와 객체 데이터베이스를 저장하는 곳을 말한다.
이 Git 디렉토리가 Git의 핵심이다. 다른 컴퓨터에 있는 저장소를 Clone 할 때 Git 디렉토리가 만들어진다.
2. 워킹 트리
프로젝트의 특정 버전을 Checkout 한 것이다. Git 디렉토리는 지금 작업하는 디스크에 있고 그 디렉토리 안에 압축된 데이터베이스에서 파일을 가져와서 워킹 트리를 만든다.
3. Staging Area
Git 디렉토리에 있다. 단순한 파일이고 곧 커밋할 파일에 대한 정보를 저장한다.
Git에서는 기술용어로는 “Index” 라고 하지만, “Staging Area” 라는 용어를 써도 상관 없다.
Git으로 하는 일은 기본적으로 아래와 같다.
1. 워킹 트리에서 파일을 수정한다.
2. Staging Area에 파일을 Stage 해서 커밋할 스냅샷을 만든다. 모든 파일을 추가할 수도 있고 선택하여 추가할 수도 있다.
3. Staging Area에 있는 파일들을 커밋해서 Git 디렉토리에 영구적인 스냅샷으로 저장한다.
Git 디렉토리에 있는 파일들은 Committed 상태이다.
파일을 수정하고 Staging Area에 추가했다면 Staged이다.
그리고 Checkout 하고 나서 수정했지만, 아직 Staging Area에 추가하지 않았으면 Modified이다.
1. 기존 디렉토리를 Git 저장소로 만들기
버전관리를 하지 아니하는 기존 프로젝트를 Git으로 관리하고 싶은 경우 우선 프로젝트의 디렉토리로 이동한다.
IDE 의 경우 해당 프로젝트를 실행하고 Terminal 에서 진행하는데 처음 실행하면 위치는 해당 프로젝트의 경로에 있다.
여기서 명령어를 실행한다.
$ git init
이 명령은 .git 이라는 하위 디렉토리를 만든다.
/.git 디렉토리에는 저장소에 필요한 뼈대 파일(Skeleton)이 들어 있다.
이 명령만으로는 아직 프로젝트의 어떤 파일도 관리하지 않는다.
Git이 파일을 관리하게 하려면 저장소에 파일을 추가하고 커밋해야 한다.
git add 명령으로 파일을 추가하고 git commit 명령으로 커밋한다
$ git add *.c
$ git add LICENSE
$ git commit -m 'initial project version'
2. 기존 저장소를 Clone 하기
다른 프로젝트에 참여하려거나(Contribute) Git 저장소를 복사하고 싶을 때 git clone 명령을 사용한다.
git clone 을 실행하면 프로젝트 히스토리를 전부 받아온다.
실제로 서버의 디스크가 망가져도 클라이언트 저장소 중에서 아무거나 하나 가져다가 복구하면 된다.
(서버에만 적용했던 설정은 복구하지 못하지만 모든 데이터는 복구된다)
git clone <url> 명령으로 저장소를 Clone 한다. libgit2 라이브러리 소스코드를 Clone 하려면 아래과 같이 실행한다.
$ git clone https://github.com/libgit2/libgit2
# 다른 디렉토리 이름으로 Clone (mylibgit)
$ git clone https://github.com/libgit2/libgit2 mylibgit
원하는 라이브러리를 검색하여 url을 바꾸거나 그래픽 기반 OS의 경우
git 사이트에서 원하는 라이브러리를 검색하고 url을 복사하여 (예시. IntelliJ) Git - Clone에 url을 붙여넣고 생성하면 된다.
https://git-scm.com/book/ko/v2/%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0-Git-%EA%B8%B0%EC%B4%88
Git - Git 기초
Subversion과 Subversion 비슷한 놈들과 Git의 가장 큰 차이점은 데이터를 다루는 방법에 있다. 큰 틀에서 봤을 때 VCS 시스템 대부분은 관리하는 정보가 파일들의 목록이다. CVS, Subversion, Perforce, Bazaar 등
git-scm.com
Git - Git 저장소 만들기
2.1 Git의 기초 - Git 저장소 만들기 Git을 사용하는 방법을 알고 싶은데 한 챕터밖에 읽을 시간이 없다면 이번 챕터를 읽어야 한다. Git에서 자주 사용하는 명령어는 모두 2장에 등장한다. 2장을 다
git-scm.com
'프로그래밍 > 기타' 카테고리의 다른 글
[기타/Git] SSH 인증키 - id_rsa 외 다른 파일 이름 인증 연결하기 (0) | 2025.01.31 |
---|---|
[기타/Git] IntelliJ 자동 staged 방지 (0) | 2025.01.29 |
[기타/Git] 리모트 저장소 / ⭐branch, merge⭐ (0) | 2025.01.28 |
[기타/Git] 저장소 수정 / 저장 / 관리 (0) | 2025.01.28 |
[기타/Git] 버전 관리 시스템(VCS) (0) | 2025.01.28 |