일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- AWS
- 이클립스 코틀린
- access modifier
- 안드로이드
- Android
- basic toast
- nginx 한글 깨짐
- utf8 인코딩
- git commit 해쉬
- aws 리전 변경
- 안드로이드 스튜디오 에러
- aws 느림
- E212: Can't open file for writing
- 자바
- BuildConfig
- ppk to pem
- toastmessage
- 에뮬레이터 에러
- error while loading state for instance 0x0 of device 'goldfish_pipe
- git 안드로이드 스튜디오 연동
- 코틀린 플러그인
- git 저장소
- kotlin plugin
- was server
- gitemoji
- nextInt()
- doze mode
- 도즈모드
- git
- 탄력적 ip
- Today
- Total
리얼라이져의 마케팅, 개발, 창업 블로그
git 공부 (4)탄 본문
git 공부 (1)탄 에서는 git 소프트웨어 설치에 대해서 정리했다.
git 공부 (2)탄 에서는 git에 대해서 간략하게 정리해보았다.
git 공부 (3)탄 에서는 git 저장소 만들기를 정리했다.
이번엔 git 으로 하는 기본적인 문서 버전관리 를 정리 해보도록 하겠다.
git 공부 (3)탄 에서는 git repository(저장소)를 만드는 것 까지 진행하였다.
git 은 버전관리를 할때 총 세가지 영역으로 구분된다.
1. 작업 트리
파일 수정 , 저장을 할수 있는 디렉터리 이다.
일반적으로 우리가 파일을 만들고, 수정 하고 저장하는 공간이다.
이전에 git 공부 (3)탄 에서 leedonghun-git이라는 폴더를 만들고
git-init 을 해서 그안에 git 저장소를 만들어줬다
이때 leedonghun-git 폴더가 작업 트리가 될수 있다. -> 여기에 파일을 만들고 수정을 할거니까...
2. 스테이지
작업트리에서 수정한 파일을 버전 파일로 만들고 싶을때,
버전으로 만들 파일을 대기 시키는 곳이다.
예를들어, 작업트리에서 2개 파일을 수정했다.
그중 1개의 파일을 버전으로 만들고 싶을때 그 파일을 스테이지로 넘겨주면 된다.
버전이란??
무엇인지 모른다면, git 공부 (2)탄을 가서 git의 대한 간략한 정리를 해보면 좋을것 같다.
3. 저장소
repository라고도 부르며,
스테이지에서 버전 파일이 되기 위해 대기하던 파일들을 버전으로 만들어 저장하는 곳이다.
(최종 장소라고 볼수 있다.)
그럼 이번 글에서는
hello.txt 라는 파일을 만들어서 스테이지에 넘기고 저장소에 넘겨
버전화 시키는 것 까지 다뤄 보겠다.
그럼 시작 !
우선, 작업 트리에 hello.txt 파일을 생성해 보겠다.
hello.txt라는 파일을 만들어서 작업트리로 쓰려고 했던 leedonghun-git 폴더에 넣어보겠다.
hello.txt 파일은
vim 에디터를 사용해서 직접 커맨드 창에서 hello.txt를 만들어 보겠다.
이렇게 필자는 hello.txt 에 '첫번째 파일'이라는 내용을 담아 만들었다..
※cat 명령어를 사용하면 해당 파일의 내용을 볼수가 있다.
이렇게 파일을 만든 뒤, git status 라는 명령어를 넣게 되면,
현재 파일들의 상태를 보여준다.
※여러 종류의 상태가 있으므로 계속 진행하면서 설명하겠다.
우선, 위 처럼 새로운 hello.txt 파일을 만든 뒤,
git status라는 명령어를 넣어보겠다.
명령어를 넣으면, 위와 같이 보이게된다.
우선 세세히 보자면,
on branch master -> 현재 브랜치가 master에 있다는 건데, -나중에 브랜치 관련 글에서 설명하겠다.
No commits yet -> 말 그대로 아직 아무런 commit 내역이 없음을 의미한다.
Commit 이란? 깃에서 commit은 저장소로 저장되는 새로운 버전의 파일 이라 볼수 있을 것 같다.
좀더 정확히는 git은 버전관리를 위해 새롭게 수정된 파일의 시점을 스냅샷으로 저장한다고 한다.
이런 각 시점을 찍은 스냅샷을 커밋이라고 부른다고 한다.
이렇게 각 시점을 찍은 스냅샷을 통해 수정전 버전 수정후 버전 등을 가지며,
버전관리가 가능하다고 한다.
Untracked files -> 작업트리에 있는 파일들은 이전에 버전관리가 진행됬던 파일과 안되었던 파일로 나
뉠수 있다.
이전에 commit을 해서 버전관리를 하는 파일이라면, tracked file
그런적이 없는 파일이라면 untracked file로 나눠진다.
hello.txt의 경우에는 방금 만들어낸 파일이기 때문에 untracked file이라고 뜬다.
그렇다면, 이제 새로운 파일(hello.txt)이 작업트리에 만들어졌으니,
최종적으로 현재 파일을 저장소에 commit 하기 전 대기 장소인 스테이지로 넘겨 보겠다.
※why?그런데 왜 스테이지 라는 중간 장소가 존재 할까??
작업트리에서 파일들을 수정하고, 바로 commit 하면되지 않을까??
이런 의구심이 있었다.
조금 찾아본 결과 스테이지의 필요성 중 하나는
작업 트리에서 수정한 파일을 바로 커밋 하지 말고
그 수정 버전의 파일을 커밋하기전에 스테이지에 남겨두고
작업 트리에서 또 수정을 가하면, 아직 커밋하지 않았지만, 이전 수정 파일과
현재 수정파일을 가지고 있을수 있으며, 최종 커밋을 어떤 것으로 할지 고민해 볼수 있다 이다.
물론, 다른 이점들도 많을 것이다. 나중에 다뤄보도록 하겠다.
스테이지로 파일을 보내기 위해선 git add '파일이름' 을 적어주면된다.
※이렇게 하면, 간혹 위 warning문구가 나올수 있는데,
리눅스에서는 개행 문자 (줄바꿈 문자) 가 LF 문자이고 윈도우에서는 CRLF라고 한다.
그래서 윈도우를 사용할때는 LF가 CRLF로 바뀔수 있다는 경고문이 나온다.
깃은 리눅스 명령어를 기반으로 사용되기 때문....
이렇게 하고 다시 git status 를 보면 아래와 같이 나온다.
changes to be committed-> 커밋이 될 수정된 의미이다. -> 파일이 staged된 상태라 볼수 있다.
그리고 새롭게 만들어서 처음으로 commit을 할 파일이기 때문에 new file이라고 적혀있다.
이제 바로 스테이지에 파일을 대기 시켜 놨으니 커밋을 해서 저장소에 넣어보겠다.!
commit 명령어는 git commit -m "커밋 메세지" 이다.
커밋 메세지는 현재 버전에서는 무엇을 했는지 구별하기 위한 메세지를 넣어주면 된다고 한다.
일단 나의 경우는 간단하게 '첫번째 커밋' 이라고 적었다.
그리고 다시 git status 를 치게 되면, commit 할께 아무것도 없고 작업트리도 clean하다고 나온다.
commit 한 로그도 볼수 가있는데, git log 쓰면 아래와 같이 나온다.
누가 commit 했으며, 언제 commit을 했는지 나온다,
맨위 commit 옆은 해쉬값은 commit해쉬라고 하는데 다음에 사용법을 알아보겠다..
<git관련 공부 내용은 -Do it - 깃&깃허브 입문 책을 기반으로 공부하여 작성하였습니다.>
끝~
개발자가 되기 위해 공부 중인 비전공자 학생입니다.
아직 부족하여, 부족하거나 틀린 내용이 있을수 있으니,
그부분에 대해서 생각을 댓글로 공유해주시면
감사하겠습니다.^^
'IT > 문서관리' 카테고리의 다른 글
GitEmoji 사용하기 (0) | 2023.09.10 |
---|---|
git 공부 (5)탄 (0) | 2020.04.06 |
git 공부 (3)탄 (0) | 2020.02.01 |
git 공부 (2)탄 (0) | 2020.01.30 |
git 공부 (1)탄 (0) | 2020.01.01 |