Git 저장소 생성(init), 최초로 commit하기

정보/뉴스

Git 저장소 생성(init), 최초로 commit하기

담운 0 1,236 2019.06.08 11:41

안녕하세요. 이번 시간에는 진행중인 프로젝트에 git 저장소를 생성하고, 최초로 commit을 해보겠습니다.

깃 명령어를 사용하는 방법은 여러가지가 있지만 저는 주로 명령프롬프트(CMD)를 사용합니다. 따로 설치할 필요가 없으니까요. 아니면 통합 개발 환경(IDE)에 내장되어 있는 터미널을 사용하거나, Git을 설치할 때 딸려오는 Git Bash나 Git GUI를 사용하는 것도 괜찮습니다. 하지만 무엇을 사용하든 명령어는 같으니 너무 걱정하지 마세요.

이제 프로젝트를 하나 만들어보겠습니다. 아무 곳에나(쉽게 하려면 C:\) gitExample 폴더를 만들고, gitExample 폴더에 git.htmlgit.css를 만듭니다. 내용은 다음과 같이 하겠습니다.

git.html

<!DOCTYPE html>
<html>
<head>
  <title>깃 연습</title>
  <link rel="stylesheet" href="./git.css" />
</head>
<body>
  <h1>깃 연습</h1>
  <p><b></b>의 사용 방법에 대해 알아봅시다</p>
</body>
</html>

git.css

h1 {
  font-size: 2rem;
}
p {
  font-size: 1rem;
}

git init

이제 명령 프롬프트로 자신의 프로젝트 폴더 위치로 이동합니다. cd [경로] 명령어를 사용하면 됩니다. 그리고 git init을 쳐봅시다. Initialized empty Git repository in [경로] 이렇게 한 줄이 나오고, 프로젝트 폴더 안에 .git이라는 숨겨진 폴더가 생성되었습니다. 만약 폴더가 안 보인다면, 보기에서 숨겨진 파일 보기를 체크하세요.

PVrXZiXcSOexMGk1TSgm

이제 여러분은 이 프로젝트에 Git을 사용할 수 있습니다. 시작은 정말 간단하죠?

git status

다음으로 git status를 쳐봅시다. 현재 파일들의 상태를 볼 수 있습니다.

oTyxE8VGQW7iznhKeUxr

한 줄씩 보자면, 일단 현재 branch는 master입니다. 이거는 이따가 설명할 거니까 넘어가겠습니다. 그리고 Initial commit이라고 나와있는데요. commit을 해야만 Git에 파일이 저장됩니다. 즉 Git이 '이 파일이 내가 관리해야하는 파일이구나' 하고 알게 되는 겁니다.

아직은 commit하지 않았기 때문에 지금 상태로는 어떠한 일도 일어나지 않습니다. 처음 commit하는 것이기 때문에 Initial commit이라고 나와있습니다.

그리고 Untracked files: git.css, git.html 이라고 되어있습니다. 여기서부터가 중요합니다. 무시무시하게 빨간색으로 되어 있죠? 저렇게 빨간색으로 되어있으면 저 파일은 commit되지 않습니다. 위에 설명을 보니까 commit 대상에 포함시키려면 git add [파일 이름]을 하라고 나와있네요.

git add

git add git.html을 하고 다시 git status를 해봅시다.

M6ldC7JrQBiBl05SHUeF

어? 이제 초록색으로 git.html이 표시되네요? 마음이 편해집니다. new file: git.html 이라고 commit될 대기 중임을 알려줍니다. 이 상태로 commit을 하면 아직 git.css는 저장되지 않습니다. add하지 않았기 때문이죠. 이제 git.cssgit add git.css로 저장해줍니다.

그런데 만약 파일이 수십 수백 개라면 하나하나 add하기 힘들겠죠? 그럴 때는 git add . 으로 Untracked 파일들을 모두 다 저장할 수 있습니다.

4h0QRYQvirvemKK4KzvA

모든 파일이 Tracked 상태입니다. 참고로 add된 파일을 다시 Untracked(빨간색)으로 되돌리고 싶다면 git rm [파일명] 하면 됩니다.

git commit

이제 모든 파일이 commit 대기 중이니까 commit을 해봐야겠죠? git commit -m [설명]하면 됩니다. -m 옵션이 다음에 설명이 온다는 것을 표시합니다.

주의할 점은 로그인을 안 한 경우는 에러가 뜹니다. 그 때는 git config --global user.email "내 이메일", git config --global user.name "내 이름" 명령어를 쳐서 자기 정보를 등록한 후에 다시 commit합니다.

69npnNpZQAqP1I8DGdAW

First commit이라는 설명으로 commit을 해봤습니다. 밑에 commit에 대한 설명이 나오는 데 2개의 파일이 바뀌었고, 17줄이 새로 추가되었다고 나오네요. 그 후 다시 git status를 했더니 이제 빨간색도, 초록색도 나오지 않습니다. 모두 다 저장되었음을 알 수 있습니다.

이제 이 첫 번째 commit을 기준으로 여러분은 자유롭게 코드를 수정하거나 추가, 삭제할 수 있습니다. 만약 문제가 생기면 언제든지 이 commit으로 돌아오면 됩니다. 그 방법은 뒤에서 알려드립니다.

참고로 add와 commit을 동시에 하는 방법이 있습니다. git commit -am [설명] 으로 -a를 추가해주면 add도 동시에 됩니다. 나중에는 귀찮아서 한번에 하는 경우가 많습니다.

git log

마지막으로 commit된 내역을 볼 수 있는 명령어 git log입니다.

3rhj4u0pQgyffCFrpfy1

이제 commit을 하면 할 수록 여기에 차곡차곡 쌓입니다. 이렇게 쌓인 commit 간에 되돌릴 수도 있고 서로 합칠 수도 있습니다. 그 방법은 나중에 알아보겠습니다.

이로써 여러분은 Git에 입문하게 된 겁니다. 프로젝트 내에서 파일이 UntrackedTracked로 나뉜다는 사실을 배웠죠? commit을 통해서 Untracked를 Tracked로 전환할 수 있고, Tracked된 파일만이 Git에 저장됩니다. 다음 시간에는 원격 저장소(Github)에 commit한 것을 push해보겠습니다!

연관 게시글

투표로 게시글에 관해 피드백을 해주시면 많은 도움이 됩니다. 오류가 있다면 어떤 부분에 오류가 있는지도 알려주세요! 잘못된 정보가 퍼져나가지 않도록 도와주세요.

투표

(Git) Git 저장소 생성(init), 최초로 commit하기
만족해요
투표
설명이 부족해요
투표
너무 어려워요
투표
오류가 있는 거 같아요
투표
결과 보기


Copyright © 2016- ZeroCho 무단 전재 및 재배포 금지

댓글

댓글을 입력하세요등록
2개의 댓글이 있습니다.
익명익명
3달 전
unstage가 커맨드창에 나왔는데 설명 안하셨고 너무 방법론적인 이야기만 하시는데 좀 더 구체적인 설명이 필요합니다.
익명익명
일 년 전
언제나잘보고있습니다. 꼭 필요한내용이 아니더라도 설명을 너무조리있게 논리적으로 잘하셔서 글읽는맛이 난다고할까요. 좋은글감사합니다. 

Comments

번호 제목 글쓴이 날짜 조회
72 과연 양방향매매로 수익낼 수가 있는가… 댓글+1 담운 2020.05.14 2066
71 [해외선물] 실시간 시세신청 안내-지… 담운 2020.05.11 639
70 해외선물 실시간 시세 무료로 볼 수 … 담운 2020.05.10 1083
69 DB금융투자, 수수료 혜택 등 해외선… 담운 2020.04.02 567
68 위험 고지 담운 2020.03.31 569
67 리스크 고지 담운 2020.03.11 551
66 해외선물 증거금 담운 2019.10.20 831
65 CME E-micro 담운 2019.10.20 824
64 파생상품 양도소득세 확정신고 안내 담운 2019.09.25 857
63 주식, 암호화폐, 해외주식 세금 비교 담운 2019.09.13 881
62 해외선물옵션 API 시세 유료화 정책… 담운 2019.08.28 1863
61 Github에 ssh키 생성하고 등록… 담운 2019.06.08 1195
60 github-white-logo-70… 담운 2019.06.08 1228
59 ssh-key 생성 및 github,… 담운 2019.06.08 1713
58 Git 서버 - SSH 공개키 만들기 담운 2019.06.08 1350
57 Nodejs로 구현한 서비스를 Caf… 담운 2019.06.08 2998
56 GitHub SSH 키 생성 및 등록… 담운 2019.06.08 1527
55 기타 Git 명령어(cherry-pi… 담운 2019.06.08 1017
54 Merge와 Rebase 담운 2019.06.08 1103
53 Git 브랜치(Branch) 관리 담운 2019.06.08 1338
52 Git commit 수정하기, dif… 담운 2019.06.08 1167
51 Github 사용하기, remote,… 담운 2019.06.08 1641
열람중 Git 저장소 생성(init), 최초… 담운 2019.06.08 1237
49 Git 설치와 사용법(Git Bash… 담운 2019.06.08 1297
48 node.js git 사용법 담운 2019.06.08 1454
47 Windows에서 git 및 node… 담운 2019.06.08 1387
46 Nodejs로 구현한 서비스를 Caf… 담운 2019.06.08 1249
45 Git 활용 (기본적인 사용법) 담운 2019.06.08 1258
44 cafe24 nodejs git 저장… 담운 2019.06.08 1865
43 카페24 node.js 접속준비 담운 2019.06.08 1804
42 cafe24 node.js git 사… 담운 2019.06.08 3433
41 GitHub - 소스트리(Source… 담운 2019.06.07 1824
40 Sourcetree 설치 가이드 담운 2019.06.07 1102
39 [Git] 소스트리 (SourceTr… 담운 2019.06.07 1395
38 GitLab 업무환경 구성 가이드 담운 2019.06.07 1338
37 Git :: 소스트리(SourceTr… 담운 2019.06.07 1261
36 cafe24 에서 nodejs hos… 담운 2019.06.06 1757
35 카페24 node.js 접속준비 담운 2019.06.06 2711
34 카페24에서 Node.js 서버로 A… 담운 2019.06.06 1466
33 ssh 키 인증 방식으로 로그인하기 담운 2019.06.06 1436