GIT

[Git] 깃 설치와 git add , git commit, git restore

찰리-누나 2022. 12. 29.

 

 

 


Git

 

개발자의 기본 소양이라 할 수 있는 Git을 사용해본다. 깃을 사용하기 위해서는 먼저 Git 프로그램을 다운받아야 한다.

공식 사이트 : https://git-scm.com/downloads

자신의 운영체제에 맞는 Git을 다운받으면 된다.

 

 

 

깃을 사용하기 위해 작업 폴더를 생성했다. 이 폴더에서 shift+우클릭을 하여 파워쉘을 연다. git을 사용하기 전에 git config를 이용해 설정을 해놓아야 하기 때문이다. git config —global 은 git의 전역 설정이며, 이메일과 닉네임은 커밋을 누가 작성했는지 표시하기 위해 작성한다.

git config --global user.email "이메일"
git config --global user.name "닉네임"

 

에디터(VsCode 사용함)로 폴더를 오픈한 다음, 새 터미널을 만들고 [ git init ]을 입력한다. git init을 입력하면 현재 디렉토리를 기준으로 Git 저장소가 생성된다. (해당 디렉토리 내부에 .git이라는 폴더가 자동으로 생성된다.)

git init

 

 

 

저장소를 생성하였으므로 git을 본격적으로 사용해본다. index.html 파일을 생성하고 짧은 코드를 입력해 주었다.

<html>

    <p>깃허브 연습용 파일입니다.</p>

</html>

 

 

이제 git을 이용하여 레포지토리에 파일의 상태를 기록해보자. 먼저, Git에는 3가지의 영역이 있다.

 

● Working Directory : 내가 작업하고 있는 프로젝트의 디렉토리(폴더)

 Staging Area : 커밋을 하기 위해 git add 명령어로 추가한 파일들이 모여있는 공간. 즉, commit 전 commit할 파일들을 골라 넣어두는 곳.

 Repository : 커밋된 파일의 버전들을 모아놓는 장소.

 

staging area에 파일을 보관하는 행위를 '스테이징' 이라고 하며, git add 명령어를 통해 스테이징을 할 수 있다. 그리고 실제 repository, 즉 저장소에 저장하는 것을 '커밋' 이라고 한다. 이는 git commit 명령어를 사용한다. 따라서 과정은 아래와 같다.


1. git addstaging area에 기록할 파일을 선택한다.

2. git commit 메세지를 통해 repository에 기록한다.


 

[git add 파일명] 명령어를 사용해 파일을 스테이징하고, [git commit -m '메세지'] 로 스테이징한 파일을 커밋해보자.

1개의 파일을 add 해주고, 첫번째 커밋 메세지를 작성하였다.

 

 

그런데 이 '커밋(commit)' 이라는 것은 무엇일까? Git Textbook(https://git.jiny.dev/commit/history/) 에 의하면 다음과 같다.

 

 깃은 개발 중인 소스 코드의 이력을 관리 합니다. 커밋(commit)은 깃에서 코드의 변화를 기록하는 것을 의미합니다. 모든 코드의 변경 이력은 커밋이라는 행동을 통하여 기록이 됩니다.

 즉, 커밋은 의미 있는 변경 작업들을 저장소에 기록하는 동작입니다.

 

따라서 한 개의 '커밋' 이란 한 개의 '코드 변경 이력' 을 뜻한다. index.html 파일의 코드에 <p>태그를 한줄 추가하고, 다시 add와 commit을 해 주었다.

<html>

    <p>깃허브 연습용 파일입니다.</p>
    <p>문장을 한개 더 추가합니다.</p>

</html>

1file changed를 통해 파일이 변경되었음을 알 수 있다.

  

add 명령어로 한번에 모든 파일을 스테이징 하기 위해서는 [git add .] 을 사용한다. 디렉토리 내의 모든 파일을 add 해 줄 것이다. txt파일을 만들고, git add . 을 하여 모든 파일을 스테이징 해 주었다.

// 2dex.txt

텍스트 파일을 추가하였습니다.

git add .

 

git log 명령어는 커밋 기록을 파악하기 위한 명령어이다. --graph 옵션을 넣으면 그래프로 그려주기도 한다.

[git log --all --oneline] 을 입력하면 커밋한 모든 내역을 출력해준다.

git log --all --oneline

[git status] 를 통해 작업 디렉토리와 스테이징 영역의 상태를 알 수 있다. 단, 커밋된 프로젝트 기록에 관한 정보는 표시되지 않는다.  status에는 세 가지의 영역이 있다.

 

 Changes to be committed: 스테이징 영역에 있는 변경 내용을 보여준다.

 Changes not staged for commit: 워킹 디렉토리에 있는 변경 내용을 보여준다.

 Untracked files: 워킹 디렉토리에 있는, 아직 한 번도 해당 Git 저장소가 관리한 적 없는 새로운 파일을 보여준다.

 

모두 커밋하였으므로 nothing to commit을 띄운다.

 

2dex.txt를 수정하고 저장한 뒤, add과 commit을 실행하지 않은 상태git status를 실행해본다.

//2dex.txt

텍스트 파일을 하나 추가하였습니다.
텍스트 파일에 한줄 추가.

add와 commit을 하지 않은 상태에서, 파일을 수정했을 경우의 status

 

Changes not staged for commit 은 변경된 파일이 스테이징되지도 않았고, 커밋되지도 않았음을 뜻한다.

use "git add <file>..." to update what will be committed 는 git add를 이용하여 파일을 스테이징 할 수 있음을 알려주는 문장이다.

그 뒤에 git restore <file>..." to discard changes in working directory 이라는 문장이 있는데, git restore는 스테이징된 파일을 취소시키고 싶을 때 사용한다.

즉, [git restore --staged 파일명] 을 사용하면 스테이징된 파일을 취소할 수 있다.

 

커밋 없이 [git add .] 를 하고 상태를 출력해본 뒤, 다시 커밋을 한 뒤 상태를 출력해보았다.

git add . 만 했을 경우의 status / 커밋까지 한 뒤의 status

'GIT' 카테고리의 다른 글

[Git] git branch  (0) 2022.12.29
[Git] git diff  (0) 2022.12.29

댓글