Git 설치 + GitHub 사용법 | 파일 올리기(Push), 내려받기(Pull), 협업 방법까지 한 번에 배우기 [총 정리]

깃(Git)이란?

Git은 개발자들이 코드 변경 사항을 관리하고 추적할 수 있도록 돕는 버전 관리 시스템입니다.
주로 여러 명이 동시에 프로젝트에 참여하는 협업 도구로 사용되며, 파일을 안전하게 백업하거나 이전 버전으로 쉽게 되돌릴 수 있는 기능을 제공합니다.

 

왜 Git을 사용해야 할까요?

  1. 효율적인 협업: 코드 변경 충돌을 최소화하면서 여러 명이 동시에 작업할 수 있습니다.
  2. 변경 사항 추적: 누가, 언제, 무엇을 변경했는지 명확하게 파악 가능합니다.
  3. 복구 가능성: 실수로 코드를 삭제하거나 잘못 수정해도 이전 상태로 복원할 수 있습니다.

 

깃(Git) 설치하기

git 다운로드 사이트 이미지

깃(Git) 공식 홈페이지에 접속해 Windows 설치 파일을 다운로드하세요. 

 

 

git 설치 프로그램 이미지

Git 다운로드 후 설치 파일을 실행하세요. 화면에 나타나는 ‘Next’ 버튼을 클릭하며 설치를 진행합니다.

 

 

깃허브 설치 폴더 지정 이미지깃허브 설치 Slect Componets 단계 이미지

다음 화면에서는 Git을 설치할 폴더를 지정할 수 있습니다. 기본값으로 지정된 Program Files > Git 경로를 그대로 사용해도 무방하며, 원하는 다른 경로를 지정할 수도 있습니다. 경로를 선택한 후 ‘Next’ 버튼을 클릭하세요.

 

이후 설치 과정에서는 기본값으로 설정된 옵션을 그대로 유지한 채 ‘Next’ 버튼을 클릭하여 설치를 진행합니다.

 

 

깃 환경변수 등록하기

Git은 기본적으로 Git Bash라는 전용 터미널에서 사용하도록 설정됩니다. 하지만 명령 프롬프트(cmd) 또는 PowerShell에서 Git 명령어를 사용하는 것이 더 편리할 때가 많습니다. 이를 위해 Git을 환경변수에 등록하면, 다양한 터미널에서 Git 명령어를 실행할 수 있습니다.

 

Linux 스타일의 명령어가 익숙하거나, 더 나은 인터페이스를 원한다면 이전에 소개한 cmder와 같은 도구를 활용할 수 있습니다.

 

윈도우 검색 상자 - 시스템 환경 변수 편집 이미지

Windows 키를 누르고 검색창에 '환경'을 입력한뒤, 검색 결과에서 ‘시스템 환경 변수 편집’ 앱을 선택해 실행하세요.

 

 

시스템 속성 - 고급 - 환경 변수(N)... 이미지

시스템 속성 창이열리면 상단 탭에서 '고급 - 환경 변수(N)...'을 클릭합니다.

 

 

환경 변수 편집 - 시스템 변수 Path 선택된 상태 이미지

시스템 변수(S) -  Path를 선택하고, 편집(I)...를 클릭합니다.

 

 

환경 변수 편집 새로만들기 이미지

'새로 만들기를' 클릭하고 Git 설치 경로를 입력하여 확인을 누릅니다.

기본 설치 경로는 아래와 같습니다.

C:\Program Files\Git\cmd

 

 

이제 명령프롬포트(cmd)이나 Powershell 를 실행시킨뒤 git --version 명령어가 작동한다면 환경변수 설정이 완료되어 명령프롬포트에서도 git 명령어를 사용할 수 있습니다.

 

 

새로운 저장소(Repositories)에 git으로 파일 올리기

새로운 저장소(Repositories) 만들기

https://github.com/본인계정주소 로 이동하여 Repositories - New를 클릭하여 새로운운 저장소를 생성할 수 있습니다. 

 

깃(git) 파일 올리기

새로운 저장소 command line 이미지

새로운 저장소를 생성하면 GitHub에서 기본적인 Git 명령어를 제공해줍니다. 이를 참고하면 Git 명령어를 쉽게 따라 할 수 있습니다.

 

 

프로젝트 폴더 이미지

예를 들어, 다운로드 폴더 안에 있는 test 폴더를 프로젝트 폴더로 지정하고, 여기에 업로드할 파일인 newstroy.txt를 새로 생성했습니다.

 

 

프로젝트 폴더 경로에서 터미널 열기 이미지

명령 프롬프트(cmd)를 실행한 후 cd 명령어로 해당 경로로 이동할 수도 있습니다. 하지만, 더 간단한 방법은 파일 탐색기의 빈 공간에서 Shift 키를 누른 상태로 마우스 오른쪽 클릭을 하면 나오는 ‘터미널에서 열기(T)’ 옵션을 사용하여 해당 경로에서 바로 PowerShell을 실행할 수 있습니다.

 

 

파워쉘 현재 경로 파일확인 이미지

PowerShell이 열린 경로를 확인해보면, test 폴더에 방금 추가한 newstroy.txt 파일이 존재하는 것을 확인할 수 있습니다.

 

 

git init초기화후 생성된 .git확인 이미지

git init 명령어는 저장소를 초기화(initialize)하는 역할을 합니다. 이 명령어를 실행하면, 해당 디렉터리에서 파일을 버전 관리할 수 있으며, 디렉터리 안에 숨김 파일로 .git 폴더가 생성됩니다.

git init

 

 

git add명령어 이미지

업로드하고자 하는 파일을 선택할 때는 git add [파일명] 명령어를 사용할 수 있습니다.

여러 파일을 한꺼번에 추가하거나, 디렉터리 전체 파일을 선택하려면 git add . 명령어를 사용합니다.

git add [파일명]

 

 

git commit명령어 이미지

git commit 명령어를 사용하면 로컬 저장소에 변경 사항을 저장할 수 있습니다.

git commit -m "커밋 메시지" 명령어를 통해 변경 사항에 대한 설명을 추가할 수 있습니다.

git commit -m "커밋 메시지"

 

 

git branch이미지

git branch 명령어를 입력하면 현재 저장소의 브랜치(branch) 목록을 확인할 수 있습니다. 예전에는 기본 브랜치가 master로 설정되었지만, 최근에는 main 브랜치를 사용하는 것이 권장 사항 입니다.

git branch

 

 

git branch 이름 변경 이미지

git branch -M main 명령을 입력하면 Git에서 현재 브랜치 이름을 main으로 변경합니다.

-M 옵션은 기존에 동일한 이름의 브랜치가 있을 경우, 강제로 브랜치 이름을 변경하는 역할을 합니다.

git branch -M main

 

 

git remote add 명령어 이미지

Git에서 업로드할 원격 저장소를 지정하려면, 생성한 GitHub 저장소의 주소(URL).git 를 등록해야 합니다.

git remote add origin 주소.git 을 입력하여 origin(원격저장소)를 추가할 수 있습니다. 등록된 원격 저장소 정보를 확인하려면 git remote -v 명령어를 사용하세요.

git remote add origin 주소.git
git remote -v

 

 

git push origin main이미지

최종적으로 변경된 사항을 GitHub에 업로드하려면 git push 명령어를 사용합니다.

 

git push origin [브랜치명] 명령어를 사용하여 변경 사항을 업로드할 수 있습니다. 예를 들어, 앞서 브랜치를 main으로 설정했다면 git push origin main 명령어로 업로드를 완료할 수 있습니다.

git push origin main

 

 

깃허브에 올라간 파일을 확인하는 이미지

GitHub 저장소 페이지로 돌아가 확인해보면, 업로드했던 파일이 성공적으로 반영된 것을 볼 수 있습니다.

 

 

깃허브push, Permission 에러 발생시

깃허브 push시 Permission 에러 발생 이미지

GitHub에서 git push 명령어를 실행할 때 remote: Permission to 에러가 발생할 수 있습니다. 이 문제는 인증키를 통해 해결할 수 있습니다. 아래는 단계별 해결 방법입니다.

 

 

깃허브 setting 페이지 이미지

GitHub에서 Personal Access Token을 생성하고 이를 사용하여 인증할 수 있습니다.

Github에서 프로필 설정 페이지로 이동합니다.

 

 

깃허브 settings페이지 좌측 메뉴 이미지

왼쪽 하단 메뉴에서 Developer settings를 클릭합니다.

 

 

깃허브 Developer settings 토큰 발급 이미지

Personal access token -> Tokens (classic) 메뉴를 클릭한다음 우측에있는 Generate new token (classic) 메뉴를 클릭하여 새 토큰을 생성합니다.

 

 

 

깃허브 Personal access tokens 발급 이미지

 

  • Note(토큰 이름): 토큰을 쉽게 구분할 수 있는 이름을 입력합니다. (예: repo-access-token)
  • Expiration(만료 기간): 인증 토큰의 만료 기간을 설정합니다. 기본값은 30일이며, 필요에 따라 변경 가능합니다.
  • Select scopes(권한 설정): 모든 권한을 부여하면 토큰 유출시 보안에 문제가 생길 수 있으므로, repo 권한만 선택하세요.

 

깃허브 Generate token버튼 클릭 이미지

Generate tokne(토큰 생성): 화면 하단의 Generate token 버튼을 클릭하여 토큰을 생성합니다.

 

 

깃허브 발급된 Tokens 확인 이미지

화면에 토큰이 나타나게 됩니다.

토큰은 페이지를 벗어나면 다시 확인할 수 없으므로, 반드시 복사해 안전한 곳에 저장해두세요. 만약 토큰을 분실한다면, 기존 토큰을 삭제하고 새로 발급해야 합니다.

 

 

git remote 인증토큰 명령어 이미지

이제 발급받은 토큰을 사용해 Git 인증 정보를 업데이트합니다.

명령 프롬프트(cmd) 또는 PowerShell을 열어 다음 명령어를 실행합니다.

git remote set-url origin https://<토큰>@github.com/<GitHub사용자명>/<저장소이름>

 

  • <토큰>: 발급받은 Personal Access Token
  • <GitHub사용자명>: GitHub 사용자 이름
  • <저장소이름>: 작업 중인 GitHub 저장소 이름

 

위 명령어를 입력한 후, git push 명령을 다시 실행합니다.

git push origin main

그러면 이제 Permission 에러 없이 GitHub 저장소에 파일이 성공적으로 업로드됩니다.

 

 

기존 저장소 파일 가져오기 pull 명령어

깃(git) 저장소(Repositories) 파일 동기화하기

이번에는 기존 GitHub 저장소에서 브랜치를 동기화하고 파일을 가져오는 방법에 대해 소개하겠습니다. git pull 명령어를 사용하여 원격 저장소의 파일을 로컬로 불러오는 방법을 단계별로 정리했습니다.

 

저장소의 파일을 가져온다면 git clone와 혼동될 수 있습니다. git clonegit pull의 차이는 간단히 말해 처음 가져오는지 아니면 업데이트를 하는지의 차이입니다. 처음 저장소의 파일을 가져올땐 git clone 명령을, 이미 복제된 저장소의 최신 상태를 유지하며 파일을 로컬저장소에 업데이트하려면 pull명령을 사용합니다.

 

git init 저장소 초기화후 git remote add origin으로 저장소를 연결하는 명령어 이미지

git init명령어를 입력하여 프로젝트가 담긴 폴더의 로컬 저장소를 초기화합니다. 이후 git remote add origin 프로젝트주소.git 명령어로 저장소를 연결합니다.

git init
git remote add origin 프로젝트주소.git

 

 

git remote update 후 gir mote -v 명령어를 입력한 이미지

git remote update 명령을 통해 연결된 저장소와 연결하고, git remote -v 명령을 입력해보면 원격 저장소의 url이 적용된걸 확인할 수 있습니다.

git remote update
git remote -v

 

 

git branch -r 명령어 원격저장소 브랜치 확인하기 이미지

git branch 명령을 입력해봐도 현재 로컬 브랜치가 아무것도 없는걸 확인할 수 있습니다. 원격저장소의 브랜치를 가져와야하는데 어떤 브랜치로 구성되어있는지 확인해보려면 git branch -r 명령을통해 확인할 수 있습니다.

현재 원본 저장소에는 main브랜치로 설정되어있는걸 확인할 수 있습니다.

  • git branch -r 원격저장소 브랜치
  • git branch -a  로컬,원격모든저장소의 브랜치
git branch -r

 

 

git checkout -t origin/main 명령어후 git branch를 확인하는 이미지

git checkout -t origin/브랜치명 명령어를 사용하면, 원격 저장소의 특정 브랜치를 로컬로 가져오고 동시에 해당 브랜치로 전환할 수 있습니다.

명령어를 실행한 후 git branch 명령어를 입력하면, main 브랜치가 로컬 브랜치로 설정된 것을 확인할 수 있습니다.

git checkout -t origin/브랜치명

 

 

git pull origin 으로 깃허브 파일을 가져오는 이미지

원격 저장소의 파일들을 로컬로 동기화하려면 git pull origin 브랜치 명령어를 사용합니다.

git pull origin main

 

 

로컬 저장소의 파일 동기화 여부를 확인하는 이미지

명령어 실행 후, 로컬 저장소에서 원격 저장소의 파일들이 제대로 동기화되었는지 확인합니다.

동기화된 파일은 로컬 저장소 디렉터리에 나타나며, 원격 저장소와 동일한 상태가 됩니다.

 

 

저장소 최신 변경사항 동기화하기

git fetch명령어 이미지

프로젝트에서 작업을 하면서 다른사람들도 파일을 올리게되면 변경사항을 내 로컬저장소에도 반영을 해야하는데 이럴때, 저장소의 최신 변경 사항을 반영하려면 git fetch 명령어를 실행합니다.

 

git fetch

이 명령어는 원격 저장소의 최신 변경 사항을 로컬로 가져오지만, 실제 병합(Merge)은 수행하지 않습니다.

 

 

git pull origin main

main 브랜치의 최신 변경 사항 파일을 로컬환경에 동기화하려면 이전과 같이 git pull origin main 명령어를 사용하시면 됩니다.

 

 

(팀원) 협업으로 원본 원격저장소에 파일 업로드하기

GitHub에서 팀 협업을 진행하려면, Fork, Branch, Pull Request 과정을 통해 원본 저장소에 변경 사항을 반영해야 합니다. 

 

협업을 하기 위해서는 팀장의 저장소를 fork(복제)하고, 새로운 브랜치로 파일을 업로드하고 pull requests 요청을 통해 팀장에게 저장소의 변경사항을 알릴 수 있습니다. 팀장이 이를 승인하면 최종적으로 팀장의 저장소에 내가 변경한 파일이 업로드되게 됩니다. 아래는 각 단계별로 설명해드리겠습니다.

 

 

fork하여 저장소 복제하기

저장소 fork 이미지

협업할 저장소에 접속한뒤 우측 상단에 Fork를 클릭합니다.

 

 

create fork이미지

Create Fork 버튼을 눌러 원본 저장소를 내 GitHub 계정으로 복제합니다.

 

 

fork된 저장소 확인 이미지

복제된 저장소를 확인해보면 내 깃허브 계정으로 저장소가 복제된걸 확인할 수 있습니다.

 

 

git clone 주소 확인 이미지

Fork된 저장소 페이지에서 Code 버튼을 클릭하고, git주소를 복사합니다.

 

 

git clone 명령어 이미지

명령 프롬프트(cmd) 또는 PowerShell을 실행한뒤, git clone 복사한 주소를 입력합니다.

 

git clone 복사한주소.git

명령어를 입력하면 fork된 프로젝트가 현재 폴더에 다운받아지게됩니다.

 

 

프로젝트 폴더 이동 명령어 이미지

dir 명령을 입력하면 현재 디렉터리를 확인할 수 있습니다. 방금 다운받은 test_2025 프로젝트가 폴더로 추가된걸 확인할 수 있습니다. cd 경로 명령을 사용해 test_2025 폴더 내부로 이동합니다.

 

 

git remote -v 이미지

git remote -v 명령어를 사용하면 Git 저장소에 연결된 원격 저장소(remote)의 이름과 URL 정보를 확인할 수 있습니다.

git remote -v

 

 

origin은 Git에서 자동으로 생성되는 원격 저장소의 기본 이름입니다.

git remote add origin <URL> 명령을 통해 원격 저장소를 origin으로 등록할 수 있습니다.

 

 

다른 이름 예시

원격 저장소는 origin 외에도 사용자가 임의로 이름을 정할 수 있습니다. 예를 들어:

  • upstream: 원본 저장소를 추적할 때 사용
  • production: 배포용 저장소를 가리킬 때 사용
  • staging: 테스트 환경용 저장소

이름은 사용 목적에 따라 자유롭게 설정 가능하며, git remote add <name> <URL>로 추가할 수 있습니다.

 

 

git remoad add이미지

Fork한 저장소에서 원본 저장소를 추적하려면 원본 저장소 url을 upstream으로git remote add upstream [원본 저장소 URL]를 입력하여 추가할 수 있습니다.

 

다시 git remote -v를 하면 upstream이 추가된걸 확인할 수 있습니다.

git remote add upstream [원본 저장소 URL]
git remote -v

 

 

git branch 이미지

git branch 생성할브랜치이름 을 입력하면 새로운 브랜치를 생성할 수 있습니다. 여기에서는 feature/new 라는 브랜치를 생성하겠습니다.

 

로컬 저장소의 브랜치 목록은 git branch명령으로 확인할 수 있습니다.

git branch 생성할브랜치이름
git branch

 

 

git checkout 이미지

새로 생성한 브랜치로 이동하려면 git checkout 브랜치명 명령어를 사용합니다.

사진에서는 방금 feature/new 브랜치를 생성하여서 해당 브랜치로 이동하였습니다.

git checkout 브랜치명 명령어
git branch

 

 

git add . 파일 추가 명령어 이미지

로컬 저장소에 변경 사항이있어서 변경된 파일을 추가(commit)하고싶다면 git  add 변경된 파일을 입력하여 추가할 수 있습니다.

 

모든 파일을 추가하려면  git add .명령어로 모든 파일들을 선택할 수 있습니다.

git add .

 

 

git commit -m &quot;&quot;명령어 이미지

git commit -m "변경사항 내용" 을 입력하여 파일을 저장소에 올리기전 변경 사항을 저장할 수 있습니다.

 

git commit -m "Add test.txt 파일"

예를 들어, test.txt라는 파일을 새로 추가한 경우, 커밋 메시지는 위와 같이 작성할 수 있습니다

 

 

git push origin 액세스 거부시

git push 명령어 이미지

git push origin [브랜치명] 명령어를 실행했을 때, 액세스가 거부되는 메시지가 표시될 수 있습니다

git push origin [브랜치명]

 

 

git push github로그인 이미지

이 경우, 터미널에서 GitHub usernamepassword를 입력하면 인증이 가능합니다.

비밀번호 입력 시 화면에는 표시되지 않지만, 정상적으로 입력되니 엔터 키를 눌러 인증을 하실 수 있습니다.

 

 

다시 git push origin 브랜치명으로 명령어를 입력하면 github와 연결할수있는 gui창이 나타나게됩니다.

여기서 Sign in with your browser를 누르면 깃허브 로그인페이지가 열리게되고 로그인을 하면 변경사항을 올릴수 있습니다.

git push origin 브랜치명

 

 

파일 업로드후 Pull requests 요청하기

git push 이미지

변경 사항이 정상적으로 깃허브에 업로드되면 터미널에 성공 메시지가 표시됩니다.

 

 

깃허브 저장소 브랜치추가 확인 이미지

GitHub에서 Fork된 저장소로 이동하여 main을 클릭한 뒤 전체 브랜치를 확인합니다.

새로 생성하였던 feature/new 브랜치가 추가되었고, 해당 브랜치로 전환하면 업로드한 파일(test.txt)을 확인할 수 있습니다.

 

 

깃허브 pull requests 요청 이미지

현재는 fork저장소에만 파일이 반영이되었고 이를 원본 저장소(팀장)에 반영하기위해서는 Pull requests요청을해야합니다.

상단에 Pull requests를 누른뒤 New Pull request를 클릭합니다.

 

 

create pull requests 이미지

  1. fork하였던 저장소에서 변경사항을 원본 저장소로 보낼 브랜치를 선택합니다.
  2. 원본 저장소의 어느 브랜치에 반영시킬지를 선택합니다. 별다른 요청이 없다면 기본 브랜치인 main을 선택합니다.
  3. Creqate Pull request 요청을 보냅니다.

 

create pulll requests 이미지

변경된 내용을 설명하는 메시지를 입력하고 Create pull request를 클릭합니다.

 

 

pull requests 생성 이미지

요청이 완료되면 원본 저장소의 Pull requests 탭에 해당 요청이 표시됩니다.

이후, 원본 저장소의 관리자가 이를 승인하면 변경 사항이 원본 저장소에 반영됩니다.

 

 

(팀장) 원본 저장소 변경사항 적용하기

팀장은 저장소를 생성하고 별다른 설정을 추가로 할 필요는 없습니다. 다만 팀원이 저장소를 fork한뒤 파일을 업로드하여 Pull requests 요청이 들어오면 이를 승인해줘야 저장소에 변경사항이 저장됩니다.

 

Pull requests 요청 승인하기

깃허브 협업 pullrquests 요청 확인하기 이미지

팀장의 역할을 하고있는 원 본 저장소에서 Pull Requests 탭에 들어가면 팀원이 생성한 새로운 요청이 표시됩니다.

여기서 Merge pull requests를 클릭합니다.

 

 

깃허브 협업 pullrquests 요청 이메일 이미지

새로운 요청은 직접 Pull requests 탭에 들어가서 확인할 수도 있지만, 등록된 이메일로 알림이 오기 때문에 이메일에서도 확인할 수 있습니다.

 

 

깃허브 협업 pullrquests merge하기 이미지

Confirm merge버튼을 클릭하면 내 저장소에 변경된 사항을 적용 수 있습니다.

 

 

깃허브 협업 pullrquests 완료 이미지

변경사항이 반영되면 기존 Pull requests 할 항목이 사라지게됩니다.

원본 저장소에 확인해보면 main브랜치에 변경사항 파일이 반영됩니다.

 

 

VScode에서 git 사용하여 올리는법

Visual Studio Code(VScode)는 터미널과 GUI(Graphical User Interface)를 모두 지원하여 Git을 보다 편리하게 사용할 수 있습니다. 아래는 VScode를 사용해 프로젝트를 관리하고 GitHub에 파일을 업로드하는 방법입니다.

 

프로젝트 경로에서 VScode 실행하기

git을 설치하였다고 가정하고 vscode를 실행하고 프로젝트 폴더를 실행합니다. 앞서 사용했던 test프로젝트를 사용해보겠습니다.

 

프로젝트 경로 이미지

VScode에서 프로젝트 폴더를 여는 방법은 두 가지입니다.

첫번째는 cmd & Powershell에서 해당 프로젝트 경로로 이동한뒤 code . 명령을 입력하면 현재 경로에서 vscode가 실행됩니다.

 

 

vscode 폴더 열기 이미지

또는 vscode를 실행한뒤 파일 - 폴더 열기 를 클릭하여 프로젝트폴더를 vscode에서 열 수 있습니다.

 

 

VScode 깃허브 Commit 하기

vscode 깃소스 제어 이미지

vscode의 git 인터페이스를 정리해봤습니다.

  1. 깃 소스제어 탭을 클릭하면 나중에 변경사항이 생겼을떄 branch로 업로드할 수 있습니다.
  2. cmd & powershell에서 사용했던 명령어 그대로 vscode 터미널 환경에서도 사용할 수 있습니다.
  3. 현재 선택된 브랜치를 확인할 수 있습니다.

 

vscode 커밋 이미지

프로젝트에서 파일을 수정하거나 새 파일을 추가하면, 해당 파일이 초록색으로 표시됩니다.

변경된 파일은 소스 제어 탭에서 확인할 수 있습니다. 로컬 저장소의 변경사항이 생겼다면, 좌측에 커밋을 클릭합니다.

 

 

commit 메세지 입력 이미지

Commit 메세지를 반드시 입력하고 우측 상단에 체크버튼을 클릭하여야 커밋 메세지를 저장할 수 있습니다.

 

 

vscode 소스제어 새로운파일 확인 이미지

소스제어 탭에서 변경사항을 확인한 다음 게시버튼을 클릭하면 깃허브저장소에 push할 수 있습니다.

 

 

깃허브 추가된 파일 확인 이미지

깃허브 저장소를 확인해보면 방금 추가된 파일을 확인할 수 있습니다.

 

VScode를 사용하면 터미널에서 기존 git 명령어를 지원할 뿐만 아니라, 굳이 명령어를 입력하지 않고도 간단한 GUI 환경에서 파일을 업로드할 수 있다는 장점이 있습니다.

Top