지영이의 개발 블로그

Git & Github (1) 본문

Git&Github

Git & Github (1)

이지영 2022. 6. 15. 20:33

리눅스 명령어

  • $ 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 커밋 해시 : 커밋 삭제하지 않고 되돌리기
Comments