728x90
GIT & GITHUB
GIT, GITHUB란?
- GIT - 소스코드를 여러명이서 편집, 수정 시 버젼 관리를 할 수 있는 툴
- 데이터를 저장할 공간만 있으면 어디서든지 사용할 수 있음
- GITHUB - GIT으로 관리하는 프로젝트를 올려둘 수 있는 대표적인 GIT 호스팅 사이트
- GITHUB에 소스코드를 올리면 시간, 공간의 제약 없이 협업 가능
- 공개 저장소 프로젝트 → 오픈 소스
GITHUB 회원가입하기
GITHUB 회원가입은 어렵지 않다.
이 사이트에서 우측 상단에 sign up 버튼을 누르고 하라는 대로 하면 회원가입이 된다.
토큰 만들기
GITHUB는 보안을 위해 GITHUB 사이트 외부에서 로그인할 때 토큰을 사용한다
GIT 설치하기
Git - Downloads
Downloads macOS Windows Linux/Unix Older releases are available and the Git source repository is on GitHub. Latest source Release 2.48.1 Release Notes (2025-01-13) Download Source Code GUI Clients Git comes with built-in GUI tools (git-gui, gitk), but ther
git-scm.com
- 위 링크로 이동하여 git을 다운받는다
- 이후 윈도우 작업 표시줄에 Git Bash를 입력하여 실행한다.
- 검은 화면이 나오면 ‘git’을 입력한다.
- 흰 글씨가 많이 나오면 git 설치 완료
로컬 저장소 만들기
- 깃에 연결할 컴퓨터 폴더를 만든다
- 폴더 안에 README.txt 파일을 만들고 우클릭해 git bash here을 클릭한다.
- git bash 창이 열리면 ‘git init’을 입력한다
- ‘Initialized empty Git repository’가 나오면 성공
- ‘git init’ 입력 시 숨겨진 폴더로 “.git”이라는 폴더가 생성됨 → 이를 로컬 저장소라고 부름
- git으로 생성한 버전 정보와 원격 저장소 주소 등을 저장함
커밋 만들기
- 저장이라고 생각하면 쉬우며 첫번째 버전으로 기록한다는 뜻으로 **“커밋(commit)”**이라는 말이 쓰임
- README.txt 가 들어있는 파일에 git bash를 연다
- 아래 두가지의 명령어를 차례대로 입력한다
$ git config --global user.email "깃허브 가입 이메일"
$ git config --global user.name "깃허브 가입 이름"
- 버전으로 만들 파일을 선택하는 작업을 한다. ‘git add’를 사용할 것
$ git add README.txt
- 커밋에는 상세한 절명을 적을 수 있으며 이를 잘 활용할 시 코드 버전 관리가 수월해지므로 최대한 자세하게 적을 것을 추천함
$ git commit -m "설명" #-m은 message의 약자임
#결과
[main (root-commit) aa151d8] first commit
1 file changed, 1 insertion(+)
create mode 100644 README.txt
- README 파일을 수정하고 커밋하기
README 파일 수정 후
$ git add "README.txt"
$ git commit -m "second commit"
#result
[main ab39939] second commit
1 file changed, 1 insertions(+), 1 deletion(-)
이전 커밋으로 돌아가기
- ‘git log’로 커밋 이력 확인하기 - 최신 커밋이 가장 위에 있음
$ git log
commit ab3993964879e8b7e6d8e48fe63b1315de9554f9 (HEAD -> main)
Author: Honggyu Jeon <honggyu1220@naver.com>
Date: Thu Feb 6 15:28:03 2025 +0900
second commit
commit aa151d8fe0f3f5afdac4720cebee295fb1fcc07a
Author: Honggyu Jeon <honggyu1220@naver.com>
Date: Thu Feb 6 15:26:21 2025 +0900
first commit
- 첫 번째 커밋의 아이디 7자리를 복사 후 ‘git checkout’ 명령으로 해당 커밋으로 돌아가기
$ git checkout aa151d8
Note: switching to 'aa151d8'.
You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:
git switch -c <new-branch-name>
Or undo this operation with:
git switch -
Turn off this advice by setting config variable advice.detachedHead to false
HEAD is now at aa151d8 first commit
- 다시 ‘git checkout’ 명령으로 최신 커밋으로 돌아가기 - 이때 아이디를 복사해도 되지만 ‘-’만 입력해도 최신으로 돌아갈 수 있음
$ git checkout -
Previous HEAD position was aa151d8 first commit
Switched to branch 'main'
- git checkout 아이디 - 이를 통해 커밋으로 파일을 되돌릴 수 있다
주의사항
checkout 명령어는 많은 기능을 포함하고 있어 switch와 restore 명령어로 나눠짐
switch는 브랜치 이동 명령어, restore은 커밋 간 파일 복구 명령어
GitHub 원격 저장소(Repository)에 커밋 올리기
- 원격 저장소 - GitHub 웹 사이트에 만드는 프로젝트를 위한 공용 폴더
원격 저장소 만들기
- GitHub 로그인 후 우측 상단 “+” 버튼을 눌러 “New Repository”를 누른다
- Repository Name과 Description을 작성한다
- 하단의 Create Repository를 누른다
- 원격 저장소의 주소를 복사한다 (원격 저장소와 로컬 연결 시 필요함
<https://github.com/사용자> 이름/레포지토리 이름.git
원격 저장소에 커밋 올리기
- ‘git remote add origin’이라는 명령어 뒤에 원격 레포 주소를 붙여 입력한다.
$ git remote add origin https~~~~
- ‘git branch -M main’을 입력해 브랜치 이름을 main 이라 만든다. - 브랜치는 뒤에 설명
$ git branch -M main
- 로컬 저장소에 있는 커밋들을 git push 명령으로 원격 저장소로 보낸다.
- 이후에 뜨는 깃허브 로그인 창에선 로그인을 하고 성공 시 메세지가 뜬다
$ git push origin main
#result
info: please complete authentication in your browser...
Enumerating objects: 6, done.
Counting objects: 100% (6/6), done.
Delta compression using up to 8 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (6/6), 476 bytes | 238.00 KiB/s, done.
Total 6 (delta 0), reused 0 (delta 0), pack-reused 0
To <https://github.com/~/~.git>
* [new branch] main -> main
- GitHub에 만든 레포지토리를 확인하면 README.txt가 있는걸 확인할 수 있다
- 로컬 저장소에서 원격 저장소, 즉 Repository로 올리는 일은 ‘PUSH’한다라고 함
GitHub 원격 저장소의 커밋을 로컬 저장소에 내려받기
레포지토리에 커밋을 내려받기
레포지토리의 코드와 버전 전체를 받아오는걸 “Clone”(클론)이라고 함
- 클론할 폴더에 git bash를 연다
- git clone 명령어 뒤에 원격 저장소(레포지토리) 주소를 붙여넣는다 (Shift+Ins)
$ git clone <https://~~~~~~~~~> . #'.'을 찍어야 새로운 하위 폴더가 안생기고 바로 지정한 폴더에 clone이 진행됨
#result
Cloning into '.'...
remote: Enumerating objects: 6, done.
remote: Counting objects: 100% (6/6), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 6 (delta 0), reused 6 (delta 0), pack-reused 0 (from 0)
Receiving objects: 100% (6/6), done.
- 새로 만든 클론 폴더 확인 시 클론이 된 걸 확인할 수 있음
클론한 파일에서 커밋 푸시하기
- 클론한 파일을 수저함
- git bash에서 아까 push 할때 사용하는 명령어들을 입력합니다.
$ git add "README.txt"
$ git commit -m "This is clone"
$ git push origin main
#result
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 8 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 312 bytes | 312.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
To <https://github.com/Honggyu-Jeon/Git_study.git>
ab39939..697dd4e main -> main
- Github repository에 가서 새로고침 후 push 됬는지 확인
원격 저장소에 새로운 커밋을 로컬 저장소에 갱신하기
클론을 커밋하여 푸시했지만 로컬 저장소의 원본 폴더는 바뀌지 않았음을 확인할 수 있다
이를 원격 저장소에서 변경된 내용으로 가져와보자
- 원본 폴더에 git bash 열기
- ‘git pull origin main’ 명령어 실행
$ git pull origin main
#result
remote: Enumerating objects: 5, done.
remote: Counting objects: 100% (5/5), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 3 (delta 0), pack-reused 0 (from 0)
Unpacking objects: 100% (3/3), 292 bytes | 58.00 KiB/s, done.
From <https://github.com/Honggyu-Jeon/Git_study>
* branch main -> FETCH_HEAD
ab39939..697dd4e main -> origin/main
Updating ab39939..697dd4e
Fast-forward
README.txt | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
- 원본 폴더 변경 확인
키워드
- git - 버전 관리 시스템
- github - git으로 관리되는 파일들을 올려놓는 오픈소스
- gui - 그래픽 유저 인터페이스 - 화려한 인터페이스
- cli - 커맨드 라인 인터페이스 - 검은화면에 하얀 글씨
- git bash - CLI 방식으로 사용가능한 환경
- commit - 버전 관리로 생성된 파일 & 버전 그 자체를 의미
- log - 커밋을 했던 기록을 보여줌
- checkout - 해당 커밋으로 돌아갈 수 있음 - 현재는 switch & restore로 쪼개짐
- 로컬 저장소 - git으로 관리하는 컴퓨터에 파일
- 원격 저장소 - github에 협업하는 공간
- repository - 원격 저장소의 영어
- push - 로컬 저장소에 있는 파일을 원격 저장소로 올리는 행위
- pull - 원격 저장소에 있는 파일을 로컬 저장소로 가져오는 행위
728x90
'[Git&GitHub]' 카테고리의 다른 글
[Git&GitHub] CLI 환경에 사용되는 기초 git 명령어 (0) | 2025.02.18 |
---|---|
[Git&GitHub] 포크(fork)와 리베이스(rebase) (0) | 2025.02.10 |
[Git&GitHub] merge의 종류와 충돌 시 해결방법 (0) | 2025.02.07 |
[Git&GitHub] SourceTree를 사용한 commit & push (0) | 2025.02.06 |