김데이의 개발공부

[ TIL ] Day 37 - Git / GitHub 기본 명령어 본문

코드잇 Node.js(BE) 부트 캠프/TIL (Today I Learn) 📑

[ TIL ] Day 37 - Git / GitHub 기본 명령어

theday365 2025. 11. 17. 19:09
반응형

🗓️ 수업 일자 : 2025.11.17

✨ 오늘의 수업 평가 :  [ PROJECT ]   프로젝트 끝! 하얗게 불태웠다~ 🤍🩶🖤

 

작업했던 내용과 연계된 부분까지 수정하고 나서 최종 PR 해서 진짜 정말 최종 작업을 마무리 지었다!

내일은 지금까지 작업한 내용들 API 테스트 하면서, 다른 팀원들이 작업한 코드 보며 공부 해야지🤓

진짜 우리팀 너무 고생 많았습니다 🤍🩶🖤

 

👩‍💻 [개인 / 팀 프로젝트] 오늘 작업 내용 💻
- 팀 프로젝트 작업 : "추가 개발" 파트에서 연장된 부분 수정 진행

 

📝  오늘 배운 내용  

- Git 기본 명령어

- GitHub 알아보기

 


1. Git 기본 명령어 

0) 기본 규칙

  • 폴더 구조 : 아래 내용 작성 시 폴더/.. 로 1단계 구조로 작성하지만,
                      실제 작업 환경에서 여러 단계의 파일에 접근하는 경우 "폴더/폴더/폴더.." 구조로 사용
  • 파일 구조 : 아래 내용 작성 시 "파일명"으로 기재하지만, 실제 사용시에는 "파일명.확장자" 구조로 사용
  • 커밋 해시 : git 저장 = 커밋을 하게되면 고유 번호가 나오게 되는데, 이를 커밋 해시라고 함

커밋 해시 예시 이미지
커밋 해시 예시 이미지

 

 

1) 레포지토리(저장소) 만들기 - 순서대로 사용

  1. git init : 작업중인 로컬 공간을 저장소로 변경 
  2. 다음으로 오는 커밋 작업을 이용해 파일 저장 및 버전 관리 

 

 

2) 커밋 작업 - 순서대로 사용

  1. git add . 또는 git add 폴더명/파일명 : 작업중인 파일을 저장하기 위해 "스테이지"로 이동
  2. git commit -m "작업한 내용 작성" : 저장 작업에 대한 메세지를 입력,
    git commit : 텍스트 에디터가 나와서 메세지를 자세하게 남길 수 있음
  3. git push origin 브랜치명 : 로컬 레포지토리와 연결된 원격 레포지토리(=GitHub)에 저장한 내용 업로드

+ 추가 git push origin 브랜치명 -f

: 원격 레포지토리에서 push에러가 났을때 강제로 로컬에 있는 내용으로 원격에 업로드 하는 명령어
[ 상황 예시 ] 

 - 수정 한 파일이 로컬에 있지만 불필요하여 스테이징에 올리지 않으면, 누락 된 파일이 있다고 Git이 친절하게 알려줌 

 - 작업을 하다 보니 로컬 레포지토리에 비해 원격 레포지토리의 커밋 내용이 앞서 있는 경우

 

 

3) 작업 되돌리기 

  • git restore 파일명 : 아직 스테이지에 올라가지 않은(no add) 파일에 대해서 되돌리는 방법
  • git restrore --staged 파일명 : 이미 스테이지에 올라가 있는(add 한) 파일에 대해서 되돌리는 방법
  • git reset HEAD^ : 커밋까지 모두 완료한 작업을 되돌리는 방법. 마지막 커밋이 취소됨 
    git restore 파일명 : reset은 커밋만 되돌리므로, 파일을 이전 상태로 돌리려면 해당 작업을 한번 더 실행
  • git reset --hard 커밋 해시 : 지금까지 작업을 없애고 과거에 특정 위치의 커밋으로 파일 전체 상태를 돌리고 싶을 때 사용
  • git revert 커밋 해시 : 지금까지 했던 커밋을 유지하면서 특정 시점으로 파일의 전체 상태를 되돌림

 

+ 추가 git reset 옵션

  • git reset --hard HEAD^ : 마지막 커밋이 취소 되면서, 파일도 이전 상태로 되돌아감, 해당 명령어 사용 시 "주의"가 필요
  • git reset --soft HEAD^ : 마지막 커밋은 취소하지만, 변경된 파일은 여전히 staging 상태로 유지되어 있음
  • git reset --mixed HEAD^ : git reset HEAD^ 와 동일한 기능, 커밋을 취소하고 변경된 파일은 unstaging 상태로 만듦 

 

 

4) 기타 상태 확인 관련 명령어

  • git status : 현재 브랜치, 커밋 한 파일, 커밋 한 상태 등 전반적인 상태 표기
  • git log : 현재까지 작업 한 커밋 목록 확인
  • git branch : 지금 작업중인 레포지토리의 모든 브랜치 이름 확인
  • git diff : 현재 파일이 로컬 레포지토리의 내용과 어떻게 다른지 확인
  • git remote -v : 현재 연결된 원격 레포지토리 확인 가능
  • git config --global -l : 저장 되어 있는 Git 자격 정보 확인

 

 

2. GitHub 알아보기

- Github란? Git(깃) 관련 원격 저장소, 가장 많이 사용. 

- Github의 기능

  • 무료로 원격 저장소를 사용 가능. 
  • 지역 저장소(로컬 레포지토리)의 작업을 백업 가능
  • 온라인 개발 툴 사용 가능 : Git에서 제공 해 주는 온라인 소스 편집툴 사용 가능
  • 협업 프로젝트로 사용이 용이함
  • 자신의 개발 이력을 남길 수 있음 (=포트폴리오)
  • 다른 사람의 코드를 볼 수 있음 (개발 방식 배우기)
  • 오픈소스에 개발 참여 가능

 

- 로컬 레포지토리(내 컴퓨터) & 원격 레포지토리(github 저장소) 연결하기

 

1) 만들어진 지역 저장소를 원격 레포지도리에 연결하기 (로컬 작업 → 원격 연결)

  1. git init : 로컬 레포지토리 만들기
  2. git add . 또는 git add 폴더/파일명 : 작업 한 파일 스테이징에 올리기
  3. git commit -m "커밋 메세지" : 스테이징에 있는 파일 저장하기(버전 저장)
  4. git remote add origin 원격 레포지토리 URL : GitHub 원격 레포지토리와 연결하기 
  5. git push -u origin main : 원격 레포지토리에 첫 업로드 시 사용하는 명령어, 업로드용 브랜치 설정
    git push origin main 또는 git push : 원격 레포지토리에 저장 한 커밋 업로드(동기화)

 

2) 원격 레포지토리를 연결하고 로컬에서 작업하기 (원격 연결 로컬 작업)

  1. git clone 원격 레포지토리 URL : 원격 레포지토리를 현재 폴더로 복제하기(연결),
                                                        작업 시 상위 폴더에서 명령어 실행해야 꼬이지 않음
                                                        ex) work-place에 [project1]을 복제하려면 work-place에서 실행
  2. (작업 전) git pull : 원격 레포지토리에 있는 최신 정보를 내 로컬에 적용, Clone 한 직후에는 사용 안함
  3. git add . 또는 git add 폴더/파일명 : 작업 한 파일 스테이징에 올리기
  4. git commit -m "커밋 메세지" : 스테이징에 있는 파일 저장하기(버전 저장)
  5. git push -u origin main : 원격 레포지토리에 첫 업로드 시 사용하는 명령어, 업로드용 브랜치 설정
    git push origin main 또는 git push : 원격 레포지토리에 저장 한 커밋 업로드(동기화)

 

 

 


 

📃 내일은 뭘 배울까 🤔

- Git & Github 팀 작업하기

반응형