기타
[GIT] GIT을 통해 버젼관리를 하는 방법 - 혼자 작업하기 편
Joonfluence
2022. 12. 3. 22:17
서론
오늘은 GIT을 통해 버젼관리를 하는 방법에 관해, 혼자 작업하는 상황을 가정하고 설명하겠습니다.
버젼관리 (변경사항 등록 및 삭제)
Local Repository는 working directory, staging area, repository 이렇게 3개의 트리로 구성됩니다.
- working directory : 로컬 레포지토리 등록이 되면 자동으로 변경사항이 추적되며, 그 내용은 이곳에 기록되는 곳을 말합니다.
- staging area : 버전관리를 하고 싶은 파일/폴더들을 보관하는 곳입니다.
- repository : 버젼관리 등록이 된 파일/폴더들을 보관하는 곳입니다.
기본 사용 방법
- git init
- 작업 중인 폴더에서 git을 사용할 수 있도록 해줍니다.
- git add [파일명]
- 폴더 내의 모든 파일을 git staging area에 추가해줍니다.
- git add . 입력하면, 디렉토리 내 모든 파일을 staging area로 이동시킵니다.
- git commit
- -m "commit message"
- 커밋과 동시에 커밋 메세지 작성합니다.
- -am
- 한번 트랙된 파일들을 add와 commit을 동시해 처리합니다.
- -m "commit message"
- git remote add origin [repostory주소]
- repository 주소를 origin 이름으로 등록합니다
- git push -u origin master
- origin이란 원격 저장소에 master branch에 푸시합니다.
버젼 읽기
- git status
- working directory의 변경사항들을 목록화해줍니다.
- git log
- commit 히스토리 확인합니다.
- -p
- commit 간에 파일의 바뀐 내용을 보여줍니다.
- -stat
- 파일들의 변경 여부를 알려준다.
버젼 수정하기
- git checkout [commit-id]
- 해당 버젼으로 변경된다.
- git checkout master
- 최신 버젼의 정보로 되돌아간다.
버젼 삭제하기
- git reset
- HEAD^
- 바로 이전 커밋 삭제하기
- --soft
- index 보존(add O, staged O), 워킹 디렉토리의 파일 보존.
- --hard
- index 취소(add X, unstaged), 파일 삭제.
- --mixed
- index 취소(add X, unstaged), 파일 보존.
- --[paths]
- 현 디렉토리 영역의 커밋 삭제하기
- HEAD^
특정 버젼으로 돌아가기
- git revert [commit-id]
- 기존 커밋 내역에 영향을 주지 않으면서, 이전 커밋을 취소하기 위한 커밋을 생성한다.
- 그러나 이전 커밋들이 존재하는 상태에서의 커밋을 취소할 순 없다. 역순으로 전부 다 취소해야 가능하다. 대신 revert를 쓰면, 버젼 정보도 보관하면서 이전 버젼으로 돌아갈 수 있다.
- git checkout [commit-id]
- checkout을 통해서 역시, 이전 버젼으로 돌아갈 수 있다.
- git reset
- HEAD가 가리키는 커밋을 삭제함으로써, 기존에 Repository의 히스토리를 변경합니다.
파일 상태를 Unstage로 변경하는 방법
실수로 git add . 명령을 사용하여 모든 파일을 Staging Area에 넣은 경우,
Staging Area(git add 명령 수행한 후의 상태)에 넣은 파일을 빼고 싶을 때가 있다.
이때, git reset HEAD [file] 명령어를 통해 git add를 취소할 수 있다.
작업 내용을 임시 저장하는 방법
- git stash : 모든 파일 임시저장
- pop
- 임시 저장 내용 복원
- list
- 모든 변겅점 목록을 보여줌
- drop
- 가장 최근에 저장한 임시 저장 내용 제거
- pop
프로젝트 불러오기
# public repo
git clone [repository경로]
# private repo
git clone https://닉네임@github.com/dalicious-manager/[repository경로]
gitignore 안먹힐 때
git rm -rf --cached . git add .
참고사이트
Git
[Git] git add 취소하기, git commit 취소하기, git push 취소하기 - Heee's Development Blog
[GitHub] remote에 이미 push한 파일 지우기
반응형