24-Winter 1회차 모각코

YEEUN CHOI·2025년 1월 1일

목표

1회차: 24/12/31 19:00 ~ 22:00
장소: 공과대학 5호관 301호
계획: 24년 동계 모각코

스터디 계획

스터디 주제 : Git 용어 정리 및 기초 학습
스터디 목표 : Git 용어 정리 후, 간단한 코드 학습하기

결과

Git 관련 용어 정리

용어설명
워킹 트리 (Working tree)우리가 실제로 작업하는 폴더. 여기에 코드 파일들이 있고, Git이 관리하는 .git 폴더는 포함되지 않음. 즉, 프로젝트 폴더의 외부 모습이라고 보면 됨.
로컬저장소 (Local repository)git init 명령어로 생성되는 .git 폴더. 여기에는 우리가 만든 버전 정보, 설정 파일, 원격 저장소 정보 등이 저장됨.
원격저장소 (Remote repository)GitHub처럼 인터넷에 저장된 저장소. 로컬 저장소에 있는 내용을 업로드하거나 다운로드할 수 있음.
Git 저장소Git이 관리하는 프로젝트 전체. .git 폴더와 워킹 트리를 모두 포함하는 개념. 즉, 프로젝트 전체를 Git이 관리하는 영역이라고 이해하면 됨.

git init

  • 역할: 현재 폴더를 Git이 관리할 수 있는 프로젝트로 초기화.
  • .git 폴더가 생성되며, 이 폴더에 Git이 관리하는 데이터가 저장됨.
  • 워킹 트리: 현재 프로젝트 폴더에서 .git을 뺀 부분.
$ git init
Initialized empty Git repository in /project/path/.git/

add : 변경사항 선택 /  commit : 변경사항을 하나로 묶어 버전으로 생성

  • git add: 변경된 파일을 "스테이징" 상태로 만듦. 즉, "이 파일을 다음 버전에 포함하겠다"고 표시.
  • git commit: 스테이징된 파일을 하나의 버전으로 저장.

쉽게 생각하기:

  • git add: 쇼핑몰 장바구니에 물건을 넣는 단계.
  • git commit: 장바구니에 담긴 물건들을 결제하는 단계.
$ git add main.py
$ git commit -m "init"

이 코드는 main.py를 스테이징한 뒤 "init"이라는 메시지와 함께 버전으로 저장하는 것.

git pull : git fetch + git merge

역할: 원격 저장소(GitHub)에 있는 최신 파일을 내 컴퓨터의 로컬 저장소로 가져옴.

git fetch + git merge를 동시에 실행하는 명령어.

  • git fetch: 원격 저장소에서 변경사항을 가져오기만 함.
  • git merge: 가져온 변경사항을 워킹 트리에 적용.

쉽게 생각하기:

  • git pull: 친구가 작업한 내용을 내 컴퓨터에 업데이트.

git status : Git 저장소의 상태를 알고싶을 때

역할: 현재 작업 폴더의 상태를 보여줌.

  • 어떤 파일이 변경되었는지
  • 어떤 파일이 스테이징되었는지
  • 추가해야 할 파일이 있는지 등을 확인 가능.
$ git status

출력 결과

  • Untracked files: Git이 아직 관리하지 않는 파일.
  • Changes to be committed: 커밋 준비가 된 파일.
  • Nothing to commit: 변경 사항이 없는 상태.

git status -s 는 파일의 상태를 짧게 요약해서 상태를 보여주는 명령임. 변경된 파일이 많을 때 유용함.

$ git status -s

git log : 커밋 기록(로그) 확인

각 커밋에 대한 정보

  • 커밋 ID
  • 작성자
  • 날짜
  • 메시지 등이 포함.
$ git log

출력 결과 예시

commit 3d94a73e2257735ed9ccd12e940ede9fc7ca3d45 (HEAD -> master)
Author: sunrise <@gmail.com>
Date:   Tue Apr 4 22:27:52 2023 +0900

    add asynciotest
  • oneline : 커밋 메시지를 한 줄로 요약해서 보여줍니다.
  • graph : 커밋 간의 관계와 브랜치 흐름을 그래프로 보여줍니다. (GUI와 유사한 모습)
  • decorate : 각 커밋에 대한 브랜치와 태그 정보를 간결하게 표시합니다.
  • all : 모든 브랜치의 커밋 로그를 표시합니다. 이 옵션이 없으면 현재 체크아웃된 브랜치만 표시됩니다.
$ git log --oneline --graph --decorate --all

출력 결과 예시

* 3d94a73 (HEAD -> main) add asynciotest
* 8aa7e99 init

활동사진

개인 블로그 링크

0개의 댓글