Git & Github 학습

2025. 9. 11. 21:57·Git&GitHub

📖 학습 계획, 배운 것

  • Git, GitHub 관련 기본 학습 및 내용 정리하기
    • 용어 풀어보기
      • working tree
      • staging area
      • local directory (.git directory)

1️⃣ Working Tree

 : 위 3개의 영역을 아우루는 것을 Working Tree 라고 부르며 Git이 원격 저장로 업로드하기 위해 추적(관리)하는 파일과 추적하지 않는 파일을 구분하고, 추적하는 파이들의 상태를 구분짓는 영역을 말함

2️⃣ Working Directory

 : 실제로 소스코드를 작성하고 편집하는 영역으로, 아직 Git으로 변경 사항을 기록하기 전 단계
   해당 경로에서 Git으로 기록할(추적한다고도 함) 파일과 그렇지 않은 파일을 구분하고 지정해줄 수 있음

3️⃣ Stage Area

 : Working Diretory에서 Git으로 추적할 파일과 그렇지 않는 파일들을 선택할 수 있다고 했음. 이 중에서 추적할 파일들에 대해서 가상의 저장 공간에 기록하는데 Stage Area가 이 가상의 공간을 의미

 

4️⃣ Local Directory

 : Stage Area 에 기록된 코드들은 원격 저장소로 저장하기 위해 local repo 또는 .git directory에 기록됨


commit이라는 행위가 이뤄지는데, commit으로 저장된 local repo 값들은 원격 저장소로 업로드 되기 바로 전 단계이기 때문에 사용자에 의해 작업이 변경되지 않는 한, 해당 명령어로 기록된 값이 바로 원격 저장소로 올라감

 

  • 자주 언급되는 커맨드
    • commit
      • .git directory (Repository) 에 들어가기 전 저장한 결과값
      • commit 작업이 이뤄지지 않으면 원격 저장소로 코드를 업로드 할 수 없음
    • snapshot
      • commit의 저장 방식을 스냅샷이라고 함.
      • 특정 버전을 의미하고, 아래 이미지에서도 커밋은 그때그때 코드가 바뀔 때마다 변경 사항을 기록하므로, 마치 그 시점의 사진을 촬영하듯 저장하는 방식
      • 코드에 문제가 생겨 특정 시점에 돌아가고 싶을 때 이 기록한 Hash값을 기억해 커밋으로 돌아가는 것이 가능
    • head
      • Git을 기준으로 작업하고 있는 "위치"를 의미
    • branch
      • 업무영역이 겹치지 않고 개발한 커밋들이 서로 영향을 주지 않도록 격리하는 행위가 필요. 이 때 사용하는 것
      • 업무 영역 분리 / 배포 단계 분리 또는 버그 수정 코드 작업 / 개발 단계 구분 등의 목적으로 필수로 사용됨
    • merge
      • 코드를 합치는 과정에서 발생하는 여러가지 문제를 추적할 수 있음

이외의 명령어를 보고 싶다면 cmd나 터미널 환경에서 'git --help' 명령어로 확인할 수 있음 

 

Linux 명령어 학습하기

  • 파일/디렉토리 구조 확인 명령어
    • ls : list segment의 준말로 현재 폴더에 있는 파일과 폴더 목록을 보여줌 
      • - a : 숨김 처리된 파일이나 디렉토리까지 출력
      • -l : 파일이나 디렉토리의 이름과 속성정보까지 같이 출력
      • -t : 수정 또는 생성된 시간 순으로 정렬하여 출력
    • cd : change directory의 약자로, 디렉토리(폴더)로 이동할 때 사용하는 명령어
    • pwd : print working directory의 준말로 현재 내가 위치한 폴더(디렉토리)를 보여줌
    • mkdir : make directory의 약자로, 우리가 특정 프로젝트 경로를 새롭게 만들거나 새 카테고리로 파일이나 데이터를 저장할 폴더를 구성할 수 있음
    • touch : 파일을 생성할 때 사용하는 명령어. touch 커맨드 뒤에 파일 이름을 작성해서 생성할 수 있음
    • rm : remove의 약자로 파일 또는 디렉토리를 삭제하는 명령어. 단, rm으로 삭제된 것은 복구되지 않음
    • mv : move의 약자로 파일이나 디렉토리를 다른 환경으로 이전시킬 때 사용
    • cp : copy의 약자로 파일이나 디렉토리를 다른 곳으로 복제할 때 사용
  • 파일 내용 확인 명령어
    • cat : concatenate라는 단여의 약자. 특정 파일에 대해 기록된 텍스트를 확인할 목적으로 사용
    • less : 파일 내용을 확인하는 명령어들 중 하나, 파일을 읽어 화면에 출력하는 명령어
    • head : 텍스트로된 파일의 앞부분을 지정한만큼 출력하는 명령어
    • tail : head와는 반대로 텍스트 파일의 끝 내용을 읽을 때 사용
    • nano , vim : 리눅스에서 가장 많이 사용하는 편집 텍스트 편집 
  • 기타 유용한 명령어
    • clear : 터미널 화면 정리
    • history : 터미널 환경에서 입력한 모든 커맨드의 이력 조회
    • echo : 터미널에 입력한 텍스트를 화면에 그대로 출력하거나, 변수를 표시할 때 사용
    • df : 디스크 용량 확인을 위해 사용 
    • du : disk usage의 약자로 개별 경로에서 사용중인 용량에 대해 조회할때 사용
    • whoami : 터미널을 사용하고 있는 유저 정보를 보여주는 명령어

📝 학습 간 궁금한 부분


💡느낀점 및 보완 필요사항

  • 다양한 터미널 명령어를 통해 파일을 생성 삭제, 관리 및 업데이트 하는 과정들을 반복하며 숙달해야겠다.

 

'Git&GitHub' 카테고리의 다른 글

[Git] Pull Request 개념 다시 정리하기  (0) 2025.10.28
'Git&GitHub' 카테고리의 다른 글
  • [Git] Pull Request 개념 다시 정리하기
stark77
stark77
하마의 IT 자기개발 이모저모, 백엔드 개발자로 거듭나기
  • stark77
    하마의 개발자 성장일기
    stark77
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 컴퓨터구조와 운영체제
        • 컴퓨터구조
        • 운영체제
      • SQL 기초
      • Spring
        • 백엔드 기초
        • Spring 실습
      • JAVA
        • Java 실습
      • HTML&CSS
        • HTML&CSS 실습
      • Git&GitHub
        • Git&GitHub 실습
      • 내배캠 끄적끄적
        • Today I Learned
      • 유용한 툴 및 사이트 정리
      • 취미
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    String.format
    백엔드 기초다지기
    RestTemplate
    SpringSecurity
    WebSocket
    Stomp
    프로세스와 쓰레드
    네트워크 기초
    Github
    객체지향
    MVC
    thymleaf
    실시간 데이터 처리
    for문
    HTML&CSS
    객체지향프로그래밍
    경합조건과 교착상태
    algorithm
    웹소켓
    java
    다형성
    BEAN
    백엔드 기초
    jsp
    Spriingboot
    git
    JPA
    Java 문법기초
    Til
    Spring
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
stark77
Git & Github 학습
상단으로

티스토리툴바