지영이의 개발 블로그
Git & Github (1) 본문
리눅스 명령어
- $ pwd : 현재 위치 경로 확인
- $ ls : 현재 디렉터리에 있는 파일 확인
- ls 명령 옵션 모음
-l : 파일과 디렉터리의 상세 정보까지 표시
-a : 숨긴 파일과 디렉터리를 표시
-r: 파일의 정렬 순서를 반대로 표시
-t : 파일 작성 시간 순으로 표시 - $ cd : 디렉터리 사이를 이동
- 디렉터리 나타내는 기호
~ : 현재 접속중인 사용자의 홈 디렉터리
./ : 현재 사용자가 작업중인 디렉터리
../ : 현재 디렉터리의 상위 디렉터리 - $ mkdir : 현재 디렉터리 안에 하위 디렉터리를 만듦
- $ rm -r : 디렉터리를 삭제할 경우 'rm' 명령을 사용함. 이때 -r 옵션을 붙이면 디렉터리 안에 있는 하위 디렉터리와 파일까지 함께 삭제
<깃초기화>
깃 초기화 방법
저장소를 만들고 싶은 디렉터리로 이동해서 깃을 초기화 git init하면 그때부터 해당 데렉터리에 있는 파일들의 버전을 관리할 수 있다.아래와 같은 명령어를 입력합니다.
git init
확인 방법은 아래와 같은 명령어를 입력하면 .git 파일을 확인 할 수 있습니다.
ls -al
또는
l
일반적으로 파일을 확인하는 방법은 ls 명령어를 사용하지만
.git 파일은 숨겨져 있어서 위와 같은 명령어를 입력합니다.
Git의 관리에서 특정 파일/폴더를 배제해야 할 경우
a. 포함할 필요가 없을 때
- 자동으로 생성 또는 다운로드되는 파일들 (빌드 결과물, 라이브러리)
b. 포함하지 말아야 할 때
- 보안상 민감한 정보를 담은 파일
.gitignore 파일을 사용해서 배제할 요소들을 지정할 수 있습니다.
# 이렇게 #를 사용해서 주석
# 모든 file.c
file.c
# 최상위 폴더의 file.c
/file.c
# 모든 .c 확장자 파일
*.c
# .c 확장자지만 무시하지 않을 파일
!not_ignore_this.c
# logs란 이름의 파일 또는 폴더와 그 내용들
logs
# logs란 이름의 폴더와 그 내용들
logs/
# logs 폴더 바로 안의 debug.log와 .c 파일들
logs/debug.log
logs/*.c
# logs 폴더 바로 안, 또는 그 안의 다른 폴더(들) 안의 debug.log
logs/**/debug.log
깃 삭제 방법
삭제를 위한 명령어는 아래와 같습니다.
rm -rf .git
스테이지와 커밋
- 작업트리
: 파일 수정, 저장 등의 작업을 하는 디렉터리로 '작업 디렉터리'라고도 한다. 우리 눈에 보이는 디렉터리가 바로 작업 트리이다. - 스테이지
: 버전으로 만들 파일이 대기하는 곳이다. 예를 들어 작업 트리에서 n개의 파일을 수정했는데 2개의 파일만 버전으로 만들려면 2개의 파일만 스테이지로 넘겨주면 된다. - 저장소
: 스테이지에서 대기하고 있던 파일들을 버전으로 만들어 저장하는 곳이다. '리퍼지토리'라고도 불린다.
작업트리에서 문서를 수정하고 수정한 파일 중 버전으로 만들고 싶은 것을 스테이징 영역git add에 저장한다. 그리고 스테이지에 있던 파일을 저장소로 커밋하는 것git commit이 깃이 버전을 만드는 순서이다.
작업 트리에서 문서수정 후 스테이징하기
$ git status : 깃 상태를 확인할 때 사용
$ git add: 깃에서 스테이징할 때 사용
스테이지에 올라온 파일 커밋하기 - git commit
$ git commit -m '커밋 메시지'
$ git log : 저장소에 저장된 버전을 확인
$ git commit -am '커밋 메시지' : 스테이지에 올리고 커밋하는 과정을 한 번에 처리한다.
단, 이 방법은 한 번이라도 커밋한 적이 있는 파일을 다시 커밋할 때만 사용 가능
커밋 내용 확인
$ git log : 현재까지 커밋했던 기록을 살펴보기 위한 명령
$ git log --stat : 커밋에 관련된 파일 확인
$ git log --online : 커밋을 간략히 확인할 때 편리한 명령
$ git diff : 변경사항 확인
버전 만드는 단계 별 파일 상태 확인
tracked 파일과 untracked 파일
작업 트리에 있는 파일은 크게 tracked 파일과 untracked 파일 상태로 나뉜다.
- tracked 파일 : 깃이 추적하고 있는 상태의 파일
- untracked 파일: 한 번도 깃에서 버전 관리를 하지 않는 상태의 파일
$ git commit --amend : 방금 커밋한 메시지 수정
작업 되돌리기
Git에서 과거로 돌아가는 두 방식
- reset : 원하는 시점으로 돌아간 뒤 이후 내역들을 지웁니다.
- revert : 되돌리기 원하는 시점의 커밋을 거꾸로 실행합니다.
git log
- :q로 빠져나가기
git reset --hard (돌아갈 커밋 해시)
git reset --hard
- 💡 뒤에 커밋 해시가 없으면 마지막 커밋을 가리킴
git revert (되돌릴 커밋 해시)
- :wq로 커밋 메시지 저장
스테이지에 올렸던 파일을 내리거나 커밋을 취소하는 등의 각 단계로 돌아가는 방법
$ git checkout : 작업트리에서 수정한 파일 되돌리기
$ git reset HEAD 파일이름 : 스테이징 되돌리기
-> HEAD 다음에 파일이름을 지정하지 않으면 스테이지에 있는 모든 파일을 되돌린다.
$ git reset HEAD^ : 최신 커밋 되돌리기, 취소한 파일은 작업 트리에만 남는다.
-> 최근 n개의 커밋을 취소하려면 $ git reset HEAD~n
$ git --soft HEAD^ : 최근 커밋을 하기 전 상태로 작업 트리를 되돌림
$ git --mixed HEAD^ : 최근 커밋과 스테이징을 하기 전 상태로 작업 트리를 되돌림
$ git --hard HEAD^ :최근 커밋과 스테이징, 파일 수정을 하기 전 상태로 작업 트리를 되돌림
$ git reset 커밋 해시 : 특정 커밋으로 되돌리기
-> 특정 커밋 이후에 만들어진 커밋을 삭제하고 특정 커밋으로 이동한다.
$ git revert 커밋 해시 : 커밋 삭제하지 않고 되돌리기
'Git&Github' 카테고리의 다른 글
[Git&Githurb]자주 사용하는 Git 명령어 정리 & githurb 협업 (긴글주의) (0) | 2022.07.28 |
---|---|
Git & Github (2)깃과 브랜치 (0) | 2022.06.27 |
Git_Cheat_Sheet (0) | 2022.06.15 |
Comments