상세 컨텐츠

본문 제목

[Git] 1. Git 저장소 만들기

Git

by 코딩하는 박줄기 2022. 9. 10. 23:50

본문

728x90
반응형

Git에서 자주 사용하는 명령어를 정리해보자.

저장소를 만들고 설정하는 방법, 파일을 추적하거나(Track) 추적을 그만두는 방법, 변경 내용을 Stage 하고 커밋하는 방법을 알게 된다. 파일이나 파일 패턴을 무시하도록 Git을 설정하는 방법, 실수를 쉽고 빠르게 만회하는 방법, 프로젝트 히스토리를 조회하고 커밋을 비교하는 방법, 리모트 저장소에 Push 하고 Pull 하는 방법을 살펴본다.

Git 저장소 만들기

주로 다음 두 가지 중 한 가지 방법으로 Git 저장소를 쓰기 시작한다.

  1. 아직 버전관리를 하지 않는 로컬 디렉토리 하나를 선택해서 Git 저장소를 적용하는 방법
  2. 다른 어딘가에서 Git 저장소를 Clone 하는 방법

 

1. 기존 디렉토리를 Git 저장소로 만들기

버전관리를 하지 아니하는 기존 프로젝트를 Git으로 관리하고 싶은 경우 우선 프로젝트의 디렉토리로 이동한다.

[Git] - [Git] VisualStudio에서 Github 원격 리포지토리 연동(CLI) 참조

$ cd /c/user/my_project

새 리포지토리를 초기화하고 기본 분기의 이름을 main으로 설정합니다.

Git 버전 2.28.0 이상을 실행하는 경우 다음 명령을 사용합니다.

$ git init --initial-branch=main
$ git init -b main

이전 Git 버전의 경우 다음 명령을 사용합니다.

$ git init
$ git checkout -b main

initialize 명령을 실행하면 다음 예제와 유사한 출력이 표시됩니다.

Initialized empty Git repository in c/<user>/<my_project>/.git/

이 명령은 .git 이라는 하위 디렉토리를 만든다. .git 디렉토리에는 저장소에 필요한 뼈대 파일(Skeleton)이 들어 있다. 이 명령만으로는 아직 프로젝트의 어떤 파일도 관리하지 않는다.

 

Git이 파일을 관리하게 하려면 저장소에 파일을 추가하고 커밋해야 한다. git add 명령으로 파일을 추가하고 git commit 명령으로 커밋한다:

* git add . 을 하면 불필요한 파일 모두 버전관리 되기 때문에 .gitignore 파일 먼저 설정 한 후 작업하는것을 추천

$ git add .
$ git commit -m 'first commit'

커밋 완료 출력이 표시됩니다.

[main (root-commit) 86d9b76] first commit
 16 files changed, 237 insertions(+)
 create mode 100644 .vs/GitRepoSample/v17/.suo
 create mode 100644 GitRepoSample.csproj
 create mode 100644 GitRepoSample.sln
 create mode 100644 Program.cs
 create mode 100644 obj/Debug/net6.0/GitRepoSample.AssemblyInfoInputs.cache
 create mode 100644 obj/Debug/net6.0/GitRepoSample.GeneratedMSBuildEditorConfig.editorconfig
 create mode 100644 obj/Debug/net6.0/GitRepoSample.GlobalUsings.g.cs
 create mode 100644 obj/Debug/net6.0/GitRepoSample.assets.cache
 create mode 100644 obj/Debug/net6.0/GitRepoSample.csproj.AssemblyReference.cache
 create mode 100644 obj/GitRepoSample.csproj.nuget.dgspec.json
 create mode 100644 obj/GitRepoSample.csproj.nuget.g.props
 create mode 100644 obj/GitRepoSample.csproj.nuget.g.targets
 create mode 100644 obj/project.assets.json
 create mode 100644 obj/project.nuget.cache
Enumerating objects: 24, done.
Counting objects: 100% (24/24), done.
Delta compression using up to 8 threads
Compressing objects: 100% (19/19), done.
Writing objects: 100% (24/24), 12.47 KiB | 1.25 MiB/s, done.
Total 24 (delta 1), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (1/1), done.
To https://github.com/JinwooKing/GitRepoSample.git
branch 'main' set up to track 'origin/main'.

2. 기존 저장소를 Clone 하기

다른 프로젝트에 참여하려거나(Contribute) Git 저장소를 복사하고 싶을 때 git clone 명령을 사용한다. git clone 을 실행하면 프로젝트 히스토리를 전부 받아온다. 실제로 서버의 디스크가 망가져도 클라이언트 저장소 중에서 아무거나 하나 가져다가 복구하면 된다.

 

git clone 명령으로 저장소를 Clone 한다. libgit2 라이브러리 소스코드를 Clone 하려면 아래과 같이 실행한다.

$ git clone https://github.com/libgit2/libgit2

이 명령은 "libgit2" 라는 디렉토리를 만들고 그 안에 .git 디렉토리를 만든다. 그리고 저장소의 데이터를 모두 가져와서 자동으로 가장 최신 버전을 Checkout 해 놓는다. libgit2 디렉토리로 이동하면 Checkout으로 생성한 파일을 볼 수 있고 당장 하고자 하는 일을 시작할 수 있다.

 

아래과 같은 명령을 사용하여 저장소를 Clone 하면 "libgit2"이 아니라 다른 디렉토리 이름으로 Clone 할 수 있다.

$ git clone https://github.com/libgit2/libgit2 mylibgit

디렉토리 이름이 mylibgit 이라는 것만 빼면 이 명령의 결과와 앞선 명령의 결과는 같다. Git은 다양한 프로토콜을 지원한다. 이제까지는 https:// 프로토콜을 사용했지만 git:// 를 사용할 수도 있고 user@server:path/to/repo.git 처럼 SSH 프로토콜을 사용할 수도 있다.

 

참고

728x90
반응형

관련글 더보기

댓글 영역