해당 포스팅은 git init을 통해서 git 저장소를 생성하고 초기화 하는 방법까지 다룹니다.
Git init이란?
git init은 새로운 git 저장소를 생성하거나 기존 저장소를 초기화한다.
git 저장소를 생성하지 않으면 git 명령어를 모두 사용할 수 없다. 그저 빈 폴더에 불과한 디렉토리를 깃 저장소로 만들기 위해서는 항상 git init 커맨드를 실행해야한다. 그래서 만약 git을 처음 배운다면 필수적으로 배워야 하는 명령어 중 하나이다.
Git init의 형식
git init [-q | --quiet] [--bare] [--template=<template-directory>]
[--separate-git-dir <git-dir>] [--object-format=<format>]
[-b <branch-name> | --initial-branch=<branch-name>]
[--shared[=<permissions>]] [<directory>]
[Git init 초기화] 취소하기
git init을 취소하는 방법은 간단하다. 프로젝트 폴더 내부에 .git 폴더를 삭제하는 것이다. git init을 하면 폴더가 생기면서 저장소가 생성되기 때문에 해당 폴더를 제거하면 된다. 위처럼 윈도우 GUI로 쉽게 제거할 수도 있고
rm -r .git
폴더 내부에서 해당 커맨드를 사용해도 된다.
[git 로컬저장소 생성] 디렉터리 설정하고 git bash 실행하기
$ git status
fatal: not a git repository (or any of the parent directories): .git
우선 git을 실행하기 앞서서 새폴더를 생성해서 디렉토리를 설정해준다. git이 다운받은 상태에서 폴도에 들어가서 우클릭을 하면 git bash here
이라는 옵션을 확인할 수 있다. 옵션을 선택하면 bash 창으로 들어갈 수 있다.
bash 창에서 git status
라고 git 상태를 명령어를 입력할 fetal 오류가 뜨는 것을 확인할 수 있다. 이유는 git init을 하기 전 폴더는 그저 빈 폴더에 불과하기 때문에 명령어를 실행할 수 없는 것이다.
[git 로컬저장소 생성] git init 명령어 입력하기
$ git init
Initialized empty Git repository in D:/coding/gittest/.git/
이 명령어를 실행하면 폴더에 .git
이라는 빈 레포지토리를 만든다. 기본적으로 숨김 설정으로 만들어진다. 만약 숨긴 항목 보기를 설정하지 않았다면 해당 폴더 UI가 보이지 않는다. 숨긴 폴더를 보고 싶다면 1. 파일 탐색기를 열고, 2. 보기 옵션을 열어서, 3. 표시/숨기기 탭에서 숨긴 항목을 체크하면 된다.
├─hooks
├─info
├─objects
│ ├─info
│ └─pack
└─refs
├─heads
└─tags
해당 폴더 구조는 위와 같다. 하위 디렉토리가 있는 object
, refs
폴더 같은 경우는 내부에 아무것도 없다. 커밋이 없는 최초의 브랜치가 생성된다.
$ git log
fatal: your current branch 'master' does not have any commits yet
$ git status
On branch master
No commits yet
nothing to commit (create/copy files and use "git add" to track)
해당 상태에서 git stauts
와 git log
로 git상태를 확인할 수 있다. 해당 브랜치 이름을 설정하지 않을 시에는 master로 지정된다.
git 기본 브랜치명 main으로 변경하기
필수는 아니다. 그냥 요즘 트렌드다. master는 인종 차별적인 의미를 가지고 있어서 github같은 경우에는 2020년부터 기본 브랜치명을 main으로 설정한다. 순혈 한국인은 이게 어째서 인종차별인지 잘 모를 것 같다. 찾아본 결과 master와 slave같은 단어 자체가 노예제도를 연상시키기 때문이라고 한다.
$ git config --global init.defaultBranch main
위와 같이 git config 속성에서 애초에 master로 생성되지 않도록 설정할 수도 있다. 해당 기능은 Git 2.28 이후에 추가된 기능이다.
echo "# example-repo" >> README.md
git init
git add README.md
git commit -m "first commit"
git branch -M main
git remote add origin git@github.com:outsideris/example-repo.git
git push -u origin main
아니면 이런 식으로 git init을 한 후 main 브랜치를 생성할 수도 있다. 위의 방법은 github에서 레포지토리를 생성하고 로컬과 연결할 때 권장하는 방법이다.
참조
'DevOps' 카테고리의 다른 글
[Git🔥] git push -u 옵션 (0) | 2022.09.29 |
---|---|
[Git🔥] 명령어 모음 (add, commit, push, pull, status, log) (0) | 2022.09.15 |
[Git🔥] Git과 Github의 차이점 (0) | 2022.09.14 |
Docker란 무엇인가? (0) | 2022.08.10 |