git 기초

이상민·2023년 3월 18일
0
post-thumbnail
post-custom-banner

git이란?

git이란 프로그램 버전관리와 여러 개발자와 협업을 가능하게 해주는 프로그램이다.

레포지토리(repository)

깃을 이용하여 프로젝트 디렉토리의 버전관리관리하기 시작하면 그 프로그램 개발 과정을 기록할 수 있는데 그 파일을 repositoty라고 한다. repository안에는 프로그램의 초창기 모습부터 최신 수정 된 모습까지 담겨있다.

commit

프로젝트 디렉토리의 특정 모습을 하나의 버전으로 남기는 행위 혹은 결과물을 커밋이라고 한다.

repository & commit

  • commit: 프로그램의 버전을 관리하는 것으로 프로그램이 담겨있는 프로젝트 디렉토리의 현재 상태를 저장하는 것이 커밋이다
  • repository: 커밋이 저장 되는 곳

repository 만들기

  • 프로젝트 디렉토리 만들기
mkdir MathTool #프로젝트를 저장할 MathTool폴더를 생성
  • repository 생성
git init #빈 repository생성-> 프로젝트 디렉토리의 각 버전이 담기는 장소

commit해보기

commit을 하려면 우선 git에게 commit한 사람을 알려줘여한다.

  • git config user.name "name" #commit한 사람의 이름 입력
  • git config user.email "user.email" # commit한 사람의 이메일
  • git commit -m "content" # 커밋하고 추가로 설명 입력

위 코드를 입력하면 아래 같은 결과가 출력된다. 유저의 이름과 이메일을 입력하고 커밋할 파일의 정보를 저장하는 커멘드를 입력하면 "nothing added to commit but untracked files present (use "git add" to track)"라는 경고문구가 출력 됨
untracked: 깃에 의해 버전관리가 추적 되진 않는다는 의미
nothing add: 커밋할 파일이 지정이 안되어 있다는 의미,수정된 파일의 모습이 커밋에 포함 될것이라 지정해 줘야한다.

커밋할 파일 지정 커멘드

  • git add file: calculator.py 와 license 파일을 commit할 파일로 지정
    add 커멘드를 입력하면 아래와 같이 커밋이 잘 되었다고 출력
  • 출력의미
    (root-commit): 이 커밋이 프로젝트의 첫번째 커밋임을 의미
    calculator.pt and License: 커멘드로 입력한 커밋 메세지 #.pt ->.py 오타
    2 files changed, 5 insertions(5): 파일 두개를 추가한 작업 과 calculator.py파일의 4줄과 license파일의 1줄 총 5줄이 추가 되었다고 출력.

commit에 관한 주의사항

  1. 처음 커밋하기전 사용자의 이름과 이메일 주소 설정
  2. 커밋 메세지 남기기 (옵션 -m)
  3. 커밋할 파일을 git add 로 지정해주기

git의 세 가지 작업영역

깃은 내부적의로 크게 3가지 종류의 작업 영업을 두고 동작한다.
1. working directory: 현재 작업하는 프로젝트 디렉토리를 의미한다. 지금 상황에서는 MathTool디렉토리가 working directory이다.
2. staging area: git add한 파일 들이 존재하는 영역. 커밋을 하게 되면 stagingarea에 있는 파일들만 커밋에 반영 됨
3. repository: working directory의 변경 이력들이 저장되어 있는 영역. 즉 커밋들이 저장되는 영역이다.

  • 아래 .git 디렉토리가 repository이다.

그림 예시

  1. working directory에서 A.txt, B.txt파일을 작성
  2. git add를 이용하여 A.txt, B.txt 파일을 staging area에 올림
  3. git commit -m "Ver_1"을 실행해서 staging 파일을 가져와 커밋으로 남김

추가적인 작업

1. working derectory에서 A.txt에 Python~ 이라는 내용을추가, B.txt의 파일 내용 뒤에 Morning! 단어를 추가
2. git add B.txt를 실행하여 B.txt만 staging area에 올림
3. git commit -m "Ver_2"을 실행하여 두 번째 커밋
실행 결과 repository에는 A.txt는 수정 이전의 결과, B.txt는 수정 된 결과가 커밋에 반영 되었다.
A.txt,B.txt파일 둘다 수정했지만 staging area에 올린 파일만 커밋에 반영 된다

git add 추가로 알아보기

Mathtool derectory에 있는 calculator.py, license.txt파일을 둘다 수정한 뒤 calculator.py 파일만 staging area에 올렸다.

  • git status: 깃의 현재 상황을 나타내는 명령어

출력 결과

Changes to be committed: #커밋에 반영 될 변경사항
  (use "git restore --staged <file>..." to unstage)
	modified:   caculator.py
Changes not staged for commit: #변경사항은 있었지만 staging area에 올라가지 않았다는 의미
# 커밋에 반영되지 않는 변경사항
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
	modified:   Free

git reset

git add를 실행해서 staging area에 올린 파일을 삭제하는 명령어

git add .

현재 working drectory내 수정된 파일 모두 staging area에 올림

profile
잘하자
post-custom-banner

0개의 댓글