ECC/Git

[Git] DO IT! 5일 만에 끝내는 깃&깃허브 입문 1~4장

jiheechoi 2025. 3. 29. 11:31

1. 깃이란?

1) 깃이 제공하는 핵심 기능

  • 버전관리하기
  • 백업하기
  • 협업하기

2) 깃 환경 설정하기

-깃은 사용하기 전에 먼저 사용자 정보를 입력해야 함

  1. 사용하는 운영체제가 윈도우라면 깃 배시를, 맥이라면 터미널 창을 연다.
  2. git config 명령을 사용하여 사용자 정보를 설정한다.
$ git config --global user.name "이름"
$ git config --global user.email "메일 주소"

 

   → --global 옵션을 사용하면 현재 컴퓨터에 있는 모든 저장소에서 같은 사용자 정보를 사용하도록 할 수 있음.

 

3) 리눅스 명령 연습하기

- pwd: 현재 디렉터리 확인하기

- ls: 현재 디렉터리에 어떤 파일이나 디렉터리가 있는지 확인

   → ls 명령 옵션

옵션 설명
-a 숨긴 파일이나 디렉터리도 함께 표시
-l 파일이나 디렉터리의 상세 정보를 함께 표시
-r 파일의 정렬 순서를 거꾸로 표시
-t 파일 작성 시간순(내림차순)으로 표시

 

- clear: 터미널 화면 비우기

- cd: 디렉터리 이동 ex) cd .. -> 현재 위치의 상위 디렉터리로 이동

   → 리눅스에서 디렉터리를 나타내는 기호

기호  설명
~ 현재 접속 중인 사용자 디렉터리를 가리킴. 터미널 창에서 $ 기호 윗줄에 있는 ~가 사용자 디렉터리를 가리킴.
. 현재 사용자가 작업 중인 디렉터리
.. 현재 디렉터리의 상위 디렉터리

 

-mkdir: 현재 디렉터리 안에 하위 디렉터리를 만들때 사용

-rm: 디렉터리 삭제

-exit: 터미널 종료

 

2. 깃으로 버전 관리하기

1) 깃 저장소 만들기

-git init: 현재 디렉터리에서 깃을 사용할 수 있도록 초기화

 

2)버전 만들기

-버전: 프로그램 개발에서는 수정 내용이 쌓이면 새로 번호를 붙여서 이전 상태와 구별하는데, 이렇게 번호 등을 통해 구별하는 것을 버전이라고 함.

-깃은 버전을 만든 시간과 수정 내용까지 기록할 수 있는 버전 관리 시스템임.

   → 원래 파일 이름은 그대로 유지하면서 파일에서 무엇을 변경헀는지를 변경 시점마다 저장할 수 있음. 또 버전마다 작업한 내용 확인 가능, 버전 되돌리기 가능.

-깃의 작업 영역

  • 작업트리: 파일 수정, 저장 등의 작업을 하는 디렉터리. 우리 눈에 보이는 디렉터리
  • 스테이지(stage): 버전으로 만들 파일이 대기하는 곳. 스테이징 영역이라고도 함.
  • 저장소(repository): 스테이지에서 대기하고 있던 파일들을 버전으로 만들어 저장하는 곳

-버전이 생성되는 과정: 작업 트리에서 문서 수정 -> 수정한 파일 가운데 버전으로 만들고 싶은 것을 스테이지에 저장(add 명령) -> 스테이지에 있던 파일을 저장소로 커밋하면 버전이 만들어짐.(commit 명령)

 

3) 스테이지에 변경 사항 올리기

-git add: 깃에게 버전 만들 준비를 하라고 알려주는 것

   → 깃에서 untracked files는 버전을 아직 한 번도 관리하지 않은 파일을 의미. git add로 스테이징을 하고 나면 changes to be commited 라는 문구로 바뀜.

 

4) 스테이징한 파일 커밋하기

-버전 만드는 것을 깃에서는 커밋(commit)한다고 함.

-git commit: 파일을 커밋

   → -m 옵션으로 커밋 메시지를 함께 작성할 수 있음

$ git commit -m "message1"
$ git commit -am "message2"

 

   → -am 옵션으로 스테이징과 커밋을 한번에 처리할 수 있음.

5) 커밋 내용 확인하기

-git log: 커밋했던 기록을 살펴볼 수 있음. 이 명령을 입력하면 지금까지 만든 버전이 화면에 보이고 버전별 설명도 함께 나타남.

   → 커밋 로그: git log 명령을 입력했을 때 나오는 정보. 커밋 해시(;커밋을 구별하는 아이디), author, date 항목 등이 포함됨.

-git diff: 작업 트리와 스테이지에 있는 파일을 비교하거나 스테이지에 있는 파일과 저장소에 있는 최신 커밋을 비교할 수 있음

 

6) 버전 만드는 단계마다 파일 상태 알아보기

-작업 트리에 있는 파일은 크게 tracked와 untracked 상태로 나뉨.

   → tracked file: 한 번이라도 커밋한 파일은 깃이 계속해서 수정사항이 있는지 추적하므로 tracked 파일이라고 함.

   → untracked file: 한 번도 커밋하지 않은 파일.

-unmodified, modified, stage 상태

   → unmodified: 파일이 수정되지 않은 상태

   → modified: 파일이 수정만 된 상태

-파일이 커밋되고 나면 파일의 상태는 수정하기 직전인 unmodified 상태로 되돌아감.

 

7) 작업 되돌리기

-git restore: 작업 트리에서 수정한 파일 되돌리기(스테이징 하지 않은 상태)

-git restore --staged: 수정된 파일을 스테이징까지 했을때 스테이징을 취소하는 명령. 뒤에 파일 이름을 넣으면 해당 파일만 골라서 되돌릴 수 있음.

-git reset HEAD^: 최신 커밋이 취소 되고 스테이지에서도 내려짐.

-git reset 해시: 최신 커밋을 가리키는 HEAD를 특정 커밋으로 이동함. 즉 최신 커밋을 변경함. 

-git revert: 커밋은 남겨두고 지정한 커밋 해시의 변경 이력을 취소함.

 

3. 깃과 브랜치

1) 브랜치가 필요한 이유

-메인 코드는 main 브랜치에 그냥 둔 상태로 새로 추가하는 기능이나 코드 수정 사항은 새 브랜치로 만들어서 작업할 수 있음.

 

2) 브랜치 기능 살펴보기 

-깃으로 버전 관리를 시작하면 기본적으로 main 브랜치가 만들어지고, 기존 파일은 main 브랜치에 유지하면서 새 브랜치를 만들어 기존 팡리 내용을 수정하거나 새로운 기능을 추가할 수 있음.

-이렇게 main 브랜치에서 새 브랜치를 만드는 것을 분기한다라고 함.

-새 브랜치에서 작업을 다 끝내면 새 브랜치에 있던 파일을 원래 main 브랜치에 합칠 수 있음. 이렇게 분기했떤 브랜치를 메인 브랜치에 합치는 것을 병합한다(merge)라고 함.

 

3) 브랜치 만들기 및 이동하기 

-git brach: 깃에서 브랜치를 만들거나 확인하는 명령. 새로운 branch를 만드려면 git branch 명령 다음에 만들려는 브랜치 이름을 적고, 현재 저장소의 브랜치를 확인하려면 git branch를 입력함.

-git switch: 브랜치 전환하기

-git merge: 브랜치 병합하기

-git branch -d 브랜치이름: 브랜치를 삭제하기

4. 깃허브 시작하기

1) 원격 저장소와 깃허브

-원격저장소: 지역 저장소가 아닌 컴퓨터나 서버에 만든 저장소를 말함. 

   → 원격 저장소는 지역 저장소와 연결되어 있으면서 백업과 협업이라는 중요한 역할을 함.

-원격 저장소를 직접 구축할 수도 있지만 만들고 유지하는 것이 쉽지 않으므로 원격 저장소를 제공하는 서비스를 사용함. 그 중 대표적인 것이 깃허브.

-깃허브의 기능

  • 원격 저장소에서 깃을 사용할 수 있음
  • 지역 저장소를 백업 가능
  • 온라인 개발 툴 사용 가능
  • 협업 프로젝트에 사용 가능
  • 자신의 개발 이력을 남길 수 있음
  • 다른 사람의 코드를 살펴보고 오픈 소스에 참여 가능

2) 깃허브 가입하기

-지역 저장소: 사용자 컴퓨터에 있는 저장소

-원격 저장소: 깃허브에 있는 저장소

-푸시(push): 지역 저장소에서 원격 저장소로 커밋을 등록하는 것

-풀(pull): 원격 저장소의 변경 사항을 지역 저장소로 내려받는 것

-지역 저장소와 원격 저장소를 연결해놓으면 지역 저장소의 변경 사항은 항상 원격 저장소로 올려 두어야 하고, 원격 저장소에 변경 사항이 있다면 지역 저장소에 내려받아 두어야 함.(동기화) 

 

3) 지역 저장소를 원격 저장소에 연결하기

-git remote add origin 복사한 주소 붙여넣기: 지역 저장소와 원격 저장소를 연결하기. 이때 복사한 주소는 깃허브의 원격 저장소의 https 주소임.

 

4) 지역 저장소와 원격 저장소 동기화하기

-git push: 지역 저장소의 브랜치를 origin(원격 저장소)의 main 브랜치로 푸시하라는 명령임.

$ git push -u origin main

 

    → -u 옵션은 지역 저장소의 브랜치를 원격 저장소의 브랜치에 연결하는 것으로 처음에 한번만 사용하면 됨.

 

-git pull: 원격 저장소에서 지역 저장소로 커밋을 pull 함.

$ git pull origin main

 

5) 깃허브에 SSH 원격 접속하기

-SSH란 secure shell의 줄임말로 보안이 강화된 안전한 방법으로 정보를 교환하는 방식임. SSH에서는 기본적으로 프라이빗 키와 퍼블릭 키를 한 쌍으로 묶어 컴퓨터를 인증함. 

-SSH 원격 접속은 프라이빗 키와 퍼블릭 키를 사용해 사용하는 기기를 깃허브에 인증하는 방식임. 이 방식을 사용하면 자동 로그인 기능으로 매번 아이디와 비밀번호를 입력해야 하는 번거로움을 줄일 수 있음

-SSH 키 생성하기: ssh-keygen 명령 실행

ssh-keygen -t ed25519 -C "이메일 주소"

 

'ECC > Git' 카테고리의 다른 글

[Git] DO IT! 5일 만에 끝내는 깃&깃허브 입문 5~8장  (0) 2025.03.29