Post

git&github 입문

코딩을 시작하고 git을 다루는 법을 아직까지 몰라서 책을 읽고 배운 내용을 적어보려고 합니다.
개발자의 기본 소양인 git 관리!! 해봅시다.

버전관리하기

저장소

  1. 작업트리
    • 파일 수정, 저장 등의 작업을 하는 디렉토리. (우리 눈에 보이는 디렉토리)
  2. 스테이지(stage)
    • 버전으로 만들 파일이 대기하는 곳.(staging area)
    • add 명령어를 통해 stage에 저장됨
  3. 저장소(repository)
    • 스테이지에서 대기하고 있던 파일들을 버전으로 만들어 저장하는 곳
    • commit 명령을 통해 stage에 있던 파일이 저장소에 저장됨

작업트리

디렉토리 생성 후 현재 상태
img
$ git status
현재 상태를 보여줍니다. 파일 수정, 삭제, 생성 등 어떤 변경사항이 생기면 알려줍니다.

스테이지(add)

그냥 add 명령어로 stage에 올린다고 생각하면 됩니다.
img

저장소(commit)

$ git commit -m “commit message”
-m 이후 commit할 때 보여질 message를 적는다.
img

$ git commit -a -m “message”
stage와 commit 동시에 하기

$ git log
커밋 내용 확인하기
$ git diff
변경 사항 확인하기
img

hello.txt 파일에서 2를 지우고 two를 추가하였을 때, 2가 삭제되었고, two라는 내용이 추가되었다는 뜻

tracked 파일과 untracked 파일

img

  • hello.txt 파일을 수정했지만 아직 스테이지에 올라가지 않았다는 뜻(tracked file)
  • hello2.txt 파일이 git에서 버전 관리를 하지 않았기 때문에 수정 내역을 추적하지 않았다는 뜻(untracked file)

-> 둘다 add를 통해 스테이지로 올려야 함

작업 되돌리기

  • 작업 트리에서 수정한 파일 되돌리기(수정했지만 변경사항 취소) $ git checkout

  • 스테이징 되돌리기
    • $ git reset HEAD 파일 이름
    • 수정된 파일을 스테이징 했지만 스테이징 취소(스테이지에서 내려짐)

      HEAD: 현재 branch를 가리키는 포인터(후에 설명)

  • 최신 커밋 되돌리기
    • $ git reset HEAD^
    • 스테이징하고 커밋까지 했을 때, 가장 마지막에 한 커밋을 취소
    • 커밋이 취소되고 스테이지에서도 내려짐
  • 특정 커밋으로 되돌리기
    $ git reset 커밋 해시
    • reset A-> A 커밋을 삭제하는 것이 아니라 A 커밋 이후에 만들었던 커밋을 삭제하고, A 커밋으로 이동하겠다는 뜻
  • 커밋 삭제하지 않고 되돌리기
    • $ git revert
    • revert 명령 뒤에 취소하려고 하는 버전을 지정
    • 지우는 것이 아닌 변경했던 것을 취소한 새 커밋을 만듬
This post is licensed under CC BY 4.0 by the author.