Git 사용해보기(window)-setting

이희연·2025년 5월 14일

✅ 사용자 설정 및 세팅

1. (e-mail과 이름설정)

  • 로컬에서 사용할 Git 사용자 이메일과 이름을 설정
  • git config : Git에 관한 여러가지(추가/변경/삭제) 설정을 하는 명령어
  • 설정파일 : System 설정파일 / Global 설정파일 / 로컬(Local) 설정 파일
    • System 설정파일 : 모든 시스템 사용자에게 적용 ( git config --system )
    • Global 설정파일(하나의 계정파일) : 한 사용자의 전치 Git Repository에 적용(git config --global)
    • Local 설정파일(하나의 프로젝트파일) : 하나의 Repository에만 적용(git config --local)
  • terminal(명령 프롬프트) 열어 작성
    git config --global user.email" 이메일작성란 "
    git config --global user.name"이름작성란"

📍 설정 확인

  • 위 설정사항들을 작성하면 아무것도 안나옴
    그래서 제대로 설정이 되었는지 확인해줌

git config --list

.
.
.


❓공개키(SSH key)를 만들기전에 다른곳에서 배울땐 이런 key등록같은건 없었는데 왜써야하는건지 궁금했다

🔐 왜 공개키(SSH key)를 만드는 걸까?
👉 내 컴퓨터랑 깃허브가 ‘믿을 수 있는 사이’라는 걸 인증하기 위함
내 컴퓨터에 있는 비밀키(private key)
깃허브에 등록한 공개키(public key)가 짝이 맞아야
"오케이 너는 진짜 너다. push/pull 마음껏 해~" 하고 깃허브가 허락해줌
내가 전에 배운건 아마 HTTPS 방식으로 .. 그랬나..?
📌HTTPS 방식: 깃 명령 쓸 때마다 아이디/비번 입력
📌SSH 방식: 한 번만 키 등록하면, 그 다음부터는 암연결했을거라는호 없이도 push/pull 가능
✔️ SSH 방식이 더 편하고 보안도 좋으니까, 요즘은 처음부터 SSH 쓰라고 많이한다고 함. OK ㄱㄱ


2. Github계정에 ssh key 만들기

👉 Github ssh key만들러가기

  • 키가 없어 ssh-keygen 입력후 비밀번호등 다 그냥 넘겨주면,
    아래 모양처럼 나오면 키가 생성된것!

📍 리스트 확인하기 (ls or dir입력)

나도 ls를 사용해서 리스트 확인하려했는데...

👉 ls는 Mac/Linux 명령어고, 지금 나는 Windows CMD를 쓰고 있어서 그렇단다
👉 Windows CMD에서는 ls 대신 dir을 써야 함!
-> 이제 파일리스트가 조회가된다..!
(그중 날짜랑 시간이 오늘이고, < DIR> 표시된 항목이면 오늘 만든 .ssh 폴더나 그 안의 파일일 가능성이므로 그 파일을 확인해야함!) 파일이름을 안적어서인지 .ssh만 보임

📍 .ssh 폴더로 이동해서 그 안의 파일들을 직접 확인해보자

1) .ssh폴더로 이동(cd .ssh입력)
-> 지금 위치가 .ssh 폴더 바로 바깥이기 때문 즉, .ssh은 현재 디렉토리 안에 있는 하위 폴더라서 상대 경로로 접근 가능

🎯 tip

  • 폴더이동된 모습

3) dir로 파일 목록 확인
id_ed숫자들.pug 파일이 보인다!

4) type id_ed숫자들.pug 를 작성하여 공개키 확인!

  • 앞에: ssh-rsa 또는 ssh-ed2
  • 중간: 엄청 긴 암호문
  • 끝에: 이메일 주소나 컴퓨터 이름 (user@PC 이런 거)

    cat → Mac/Linux에서 파일 내용 보는 명령어
    type → Windows에서 같은 역할을 하는 명령어


4. Github계정에 위에서 생성한 공개키 등록

  • Github 접속후 프로필-> setting-> SSH and GPG keys
  • New SSH Key클릭해 Title과 복사한 key 입력후 Add SSH Key클릭

✨ 등록 완료!


✅ 깃 초기화 및 삭제

  • 명령어 : git init
    초기화 할 대상 폴더에서 명령어 git init 입력
    Git초기화시 폴더 안에 숨김 폴더로 .git폴더 생성(Local Config등으로 구성)
    단순히 .git폴더를 삭제

깃초기화개념이 중요!!
mac의 경우 폴더삭제 명령어 rm-rf.git

📌 Git 초기화란?

  • git init 명령어를 통해 현재 폴더를 Git 저장소로 설정하는 것.
  • 실행하면 해당 폴더 내부에 숨김 폴더인 .git/이 생성됨.
  • .git 폴더에는 다음과 같은 정보가 들어 있음:
    - 로컬 저장소의 이력 (commit 정보)
    - 브랜치 설정
    - 원격 저장소(remote) 정보
    - 기타 Git 설정 정보 (config 등)

🧪 Git 초기화 방법

git init
  • 현재 작업 중인 디렉토리(초기화할 대상 폴더)에서 실행.
  • .git/ 폴더가 생성되며, 해당 폴더가 Git 저장소로 추적되기 시작함.

❌ Git 초기화 해제 (삭제)

Git 초기화를 "해제"하고 싶다면, 사실상 .git 폴더를 삭제하면 됨.

📁 Windows에서:

rmdir /s /q .git
  • /s는 하위 폴더 포함 삭제, /q는 묻지 않고 삭제
    🍎 macOS / Linux에서:
rm -rf .git
  • 주의: rm -rf는 강력한 삭제 명령어이므로 항상 경로 확인 후 실행할 것!


    ✅ gitignore

👉 gitignore 파일 만들기 사이트
javascript, react등 원하는 프로젝트 검색후 코드 .gitignore파일에 붙여넣기

  • Git이 무시해야 할 파일이나 폴더를 지정하는 파일
  • Git은 기본적으로 모든 파일 변화를 추적하려고 함. 그런데 때로는 추적하고 싶지 않은 파일도 있다.

🤔 왜 필요하징 ?

🔥 무시하고 싶은 파일 예시

  • node_modules/: 라이브러리 수천 개 → 용량 낭비 + 공유 불필요
  • .env: 비밀번호, API 키 등 민감 정보
  • *.log: 로그 파일 → 디버깅용이지만 저장소엔 불필요
  • dist/, build/: 자동으로 생성되는 결과물
  • IDE 설정 파일 (.vscode/, .idea/ 등)
    👉 이런 것들은 Git에 커밋하지 않고, 무시하는 게 좋음

🛠️ 사용 방법

  • 프로젝트 루트 폴더에 .gitignore 파일 만들기
  • 무시할 경로 또는 패턴을 한 줄씩 작성
# 폴더 무시
node_modules/

# 특정 파일 무시
.env

# 특정 확장자 무시
*.log

# 특정 폴더 내부 파일만 무시
dist/

✅ Git 기본동작 원리

Git 기본동작 원리 4단계

단계설명
🗂️ Working Directory실제로 작업하는 내 컴퓨터의 폴더. 파일 수정, 생성, 삭제 등이 여기에 발생.
📦 Staging Area (Index)커밋할 파일을 "임시 보관"하는 곳. 어떤 파일을 저장할지 Git에게 알려주는 단계.
📘 Local Repository내 PC에 저장된 Git 저장소. 커밋한 이력들이 여기에 저장됨. git commit 하면 여기에 들어감.
🌐 Remote RepositoryGitHub 같은 서버 저장소. git push 해야 로컬 내용을 이쪽에 올릴 수 있음. 다른 사람과 협업 시 여기 공유함.

🔄 Git 작업 흐름

✔️ 흐름 요약:

  • 작업 → Working Directory에서 코딩
  • git add → Staging Area에 담기
  • git commit → Local Repository에 저장
  • git push → Remote Repository (GitHub 등)로 업로드

✅ Git 기본 용어 요약 정리

용어설명
origin원격 저장소(Remote Repository)의 기본 이름. 보통 git clone 하면 자동으로 생김. 예: GitHub 주소
HEAD현재 내가 보고 있는 커밋. 즉, 내 브랜치가 가리키는 가장 최신 커밋
add변경한 파일을 Staging Area(스테이지)로 올리는 명령 (git add 파일명)
commitStaging된 변경사항을 로컬 저장소에 저장하는 것. "스냅샷 찍는다"는 개념
commit message커밋할 때 남기는 설명글. "이 커밋이 뭘 바꿨는지" 남김
push로컬에서 만든 커밋을 **원격 저장소(GitHub 등)**에 업로드함
fetch원격 저장소의 변경 사항을 로컬로 받아오기만 함 (자동으로 병합 안 됨)
merge두 브랜치의 내용을 합치는 것. 보통 main 브랜치에 기능 브랜치 내용을 머지함
branch독립적인 작업 공간. 실험, 기능 개발 등을 다른 작업에 영향 없이 할 수 있음
checkout특정 브랜치나 커밋으로 이동하는 명령. 브랜치를 바꾸거나 커밋 상태로 이동할 때 사용

👇 상황별 대화 예시 (실무 감각 익히기)

상황대화 예시
origin"origin에 push 했어?" → GitHub에 올렸냐는 뜻
HEAD"지금 HEAD 어디 가리켜?" → 지금 브랜치의 최신 커밋이 어디냐
add"git add 안 해서 커밋이 안 되네"
commit"작업 끝났으면 커밋 하나 남기자"
commit message"의미 있는 커밋 메시지 좀 써줘…"
push"커밋 했으면 origin/main에 push 해!"
fetch"먼저 fetch 해서 다른 사람 커밋 있는지 봐"
merge"dev 브랜치 main에 merge 해줄래?"
branch"이 기능은 별도 브랜치 파서 작업하자"
checkout"checkout 해서 다른 브랜치로 옮겨봐"

일부는 제로베이스 강의에서 참고하였습니다.

profile
코린이🌱 / 개인적인 공부기록 공간입니다, 제로베이스부트캠프 수강중...😄

0개의 댓글