2. git init, add, commit + git status, log

Posted by ITPangPang
2017. 1. 29. 19:14 메모하기/git


2. git init, add, commit

(git status, git log)





ㆍ git init


ㆍ git add


ㆍ git commit


ㆍ git status


ㆍ git log





이전글에서 git 구조를 정리해봤으니

이제 한번 써보도록 하면

(git은 다운 받았다고 가정)

(소스트리는 그냥 확인용)


git init, git status


git과 내 프로젝트를 연결하는 것이다.


[C 드라이브]-[itpangpang]

폴더를 하나 만들어본다.



폴더 우클릭하거나

폴더내에서 우클릭하여

[Git Bash Here]를 선택한다



창이 열리면

git init

라고 입력한다.


이렇게 하면 끝난다

git과 내 프로젝트가 연결된 것이다.




프로젝트폴더에

.git폴더가 생겼다면 성공



소스트리에서도 열어놨다



이제 git은 프로젝트폴더에서

파일이 생성되거나 삭제되는 것을

감지할 수 있다.


itpangpang 폴더에

a.txt 파일을 하나 만들어본다.


그리고 이 상태에서

git bash를 열어서


git status라고 입력해본다


git status는 git의 현재상태를

알려준다.


bash를 보니

Untracked files: a.txt


이렇게 써있는 것을 알 수 있다.


이 것은 git에서 a.txt가 생성된 것은

알고 있지만 이 파일에 대해 추적은

하지 않고 있다는 뜻이다.


소스트리에서 한번 보면

딱 3가지 영역만 보자면


Unstaged files

이 영역이 Working directory


staged files

이 영역이 Staging Area


가장 최상단에 보이는 영역이

LocalRepository


라고 보면 된다.



이전글에서 정리했듯이


이제 원하는 파일을

git에서 관리(추적)받고 싶다면

add를 통해서

Working Directory -> Staging Area

이동시켜주면 된다.


git add


자 역시나 우클릭으로

git bash를 열어준다.


그 다음에

git add a.txt

라고 입력해본다.



이렇게 하면 끝이다.


Staging Area로 이동된 것이다.


역시나 확인을 하고 싶다면

git status

라고 입력해본다.



new file : a.txt라고 나온다.


a.txt은 이제 git 추적대상이 된다.



소스트리에서 보면


a.txt 파일이


Unstaged files에서


Staged files로 올라온 것을

확인할 수 있다.



자 그럼 Staging Area로

올라온 a.txt 파일이 어떻게

관리되는지 알아보기 위해

a.txt 파일을 열어서 내용을 수정해본다.



수정후 다시 git bash를 통해서

git status라고 입력해본다.



modified : a.txt


이렇게 알려준다.

a.txt파일이 변경된 것을

git은 알고 있다.


소스트리에서도 한번 확인해보면


Unstaged files에

a.txt가 추가되었다.


이 말은 이전에 add을 통해

Staging Area로 이동한 a.txt파일과

현재 a.txt는 다른 파일이라는 것이다.


현재 a.txt에서 작업중인 파일은

Working Directory에 존재하며

작업이 끝난 후 다시 마지막시점을

기준으로 추적받길 원한다면


add를 한번 더 해주면 된다.


add를 한번 더 하게 되면

마지막 변경된 파일이 다시

Staging Area로 올라가게 된다.


git add *


* 별표라는 것이 있다.


이건 모든이라는 의미이다.


위에서는 a.txt이라는 하나의 파일을

add 해봤다.


그런데 실제로 프로젝트를 진행하게되면

수십개의 파일을 동시에 생성하거나

수정을 하게 된다.


b.txt, c.txt, d.txt 파일을

추가해본다.





이 상태에서

git add b.txt

git add c.txt

git add d.txt


이런식으로 원하는 파일을

하나하나 add해서

Staging Area로 옮기는 방법도 있지만


git add *

를 통해서 한번에 add시키는

방법도 있다.





git commit, git log


git commit을 통해


Staging Area > Local Repository로

이동시킬 수 있다.


Local Repository로 이동이 된 파일은

이제 반영구적으로 보존 할 수 있다.


월요일날 commit을 해서 Local Repository에

프로젝트를 올린다.


그 이후에 열심히 수정을 해서 수요일날 commit을

해서 Local Repository에 프로젝트를 올린다.


수요일날 commit 하는 순간 월요일날

올렸던 프로젝트들이 사라지는 것이 아니다.


따로따로 보관하는 것이다.


월요일 commit 시점

수요일 commit 시점


두 가지 프로젝트 모두

보관중인 것이다.


역시나

git bash를 열어본다.


그 다음

git commit -m "a, b, c, d.txt file add"

이렇게 써본다.



이렇게 commit 하게 되면


작업중인 프로젝트가

내 Local Repository에 저장되는 것이다.





소스트리를 보게 되면

이런식으로 나온다.


최상단의 Description에는

아까 전에 commit -m "여기 입력한 사항"

-m 다음 "" 따옴표 안에 입력한 사항이 표기된다.


이 부분은 저장소에 저장을 할때

메시지를 남기는 부분이다.


여태까지 한 작업이 a,b,c,d라는 파일을

추가 한 것이므로 그 내용을 적은 것이다.


이번에는 git bash를 다시 열어

git log

라고 적어본다.



git log

깃 저장소에 commit한

기록을 보여주는 명령어이다.


다시 e.txt라는 파일을

추가한 후에

add, commit, log을 해본다.




이렇듯

commit하는 시점에 따라

Local Repository에 프로젝트가

저장되고,


개발자는 언제든지 원하는 시점을

선택하여 그 시점에 commit한 프로젝트를

가져올 수 있다.



여기까지 해서

git init, add, commit에 관련된

내용 정리를 마치고


다음 글에서는

push 아니면 rm?

아니면 gitignore에 대해

공부를 해보고 정리를 할 것같다.



* 개인적으로 공부하면서 정리한 내용이니

틀린내용이 포함되어있을 수 있습니다.

ㅠㅠ

'메모하기 > git' 카테고리의 다른 글

1. git 구조 공부하기  (2) 2017.01.29