깃을 테스트할 디렉터리를 만든 다음(hello-git 디렉터리를 만들었다.)
$ git init
- 현 디렉터리에서 깃을 사용할 수 있도록 초기화한다.
-이제 이 디렉터리에서 깃을 사용 가능하다.
$ ls -la
- git 디렉터리가 생겼다. 앞으로 깃을 사용하면서 버전이 저장될 저장소이다.
깃에는 작업 트리, 스테이지, 저장소가 있다.
작업 트리 스테이지 저장소
파일을 작업 트리에서 수정하고 저장하면 스테이지에 저장한다. 이제 스테이지에 있는 파일을 저장소로 커밋하면 버전이 만들어지면서 저장소에 저장된다.
hello.txt 파일을 만들자.
$ git status
- 디렉터리에 파일이 없을 때 실행했을 때랑 결과가 다르다.
이제 add로 스테이지에 올리자.
$ git add hello.txt
- 스테이징이 되었다.
$ git status
- 결과가 이전과 다르다. hello.txt가 스테이지에 추가된것이다.
파일이 스테이징 영역에 있으면 버전을 만들 수 있다.(커밋이라 부름)
$ git commit -m "message1"
$ git status
- 버전으로 만들 파일이 없고 , 작업 트리도 수정 사항 없이 깨끗하다고 나온다
$ git log
- 버전이 제대로 만들어졌는지 확인한다. 만든 사람, 만든 시각, 커밋 메세지까지 정보가 나온다.
- 스테이지에 있던 파일이 저장소(repository)에 저장된 것이다.
hello.txt 파일을 다시 수정해서 스테이징과 커밋을 한번에 해보자
$ git commit -am "message2"
- 한번에 스테이징과 커밋을 처리해준다.
$ git log
- 수정 내용이 또 나온다.

(HEAD -> main) 앞에 있는 건 커밋 해시(깃 해시)로 커밋을 구별하는 아이디이다.
그리고 가장 최신 버전을 뜻한다.
코드를 수정했을 때 어디가 다른지 알기 위해 diff를 사용한다.
vi로 내용을 수정한뒤 저장한다.
이제 git status에서 내용이 수정됨을 알 수 있다.
$ git diff
- 저장소 내용 어디가 다른지 알 수 있다.

$ git log --stat
-여러개의 파일을 commit 했을 때 상세정보를 알기 위해 사용가능하다.
hello.txt를 수정한뒤
$ git restore hello.txt
- 수정했던게 다시 복원된다.

$ git restore --staged hello2.txt
- git add hello2.txt 했을 때를 취소한다.(스테이징 취소)
$ git reset HEAD^
- 최신 커밋을 되돌린다, 스테이징도 같이 취소된다.

수정을 4번한 파일이다.
여기서 R2의 시점으로 되돌아가자

복사한 뒤
$ git reset --hard (복사한 캐시)

R2가 최신 커밋이 된다.
R3, R4 커밋은 삭제되었다.
수정한 내용을 지우고 싶지만 로그는 남기고 싶다면
$git revert (복사한 커밋 해시)
여기에 vi 편집으로 메세지 남기기
$git log로 확인하면 내가 입력한 내용이 뜬다.
'Git' 카테고리의 다른 글
| Git에서 브랜치에서 수정한 내용을 다른 브랜치로 합쳐서 올릴 때 (0) | 2024.05.17 |
|---|---|
| 깃 협업 팁 (0) | 2024.03.09 |
| 깃 - 깃허브 연결 (0) | 2024.03.05 |
| 깃 - 브랜치 (0) | 2024.03.05 |
| 깃 -설치 (0) | 2024.03.04 |