git 기초

TaeYoon Kim·2023년 11월 13일
0

기초 (치트 시트)

목록 보기
8/23
post-custom-banner

git & github

두 개을 헷갈리면 안된다.

  • git은 내 컴퓨터에 설치되는 형상관리를 해주는 프로그램
  • github는 다른 컴퓨터에 내 파일을 올린 수 있는 서비스를 제공해주는 곳

Git이란

소스코드를 효과적으로 관리하기 위해 개발된 '분산형 버전 관리 시스템'

Git를 통해서 우리는

  1. 소스 코드가 변경된 이력을 쉽게 확인할 수 있고
  2. 다른 버전끼리 비교하거나
  3. 내가 저장한 특정 시점으로 되돌아갈 수도 있다.
  4. 내가 올리려는 파일이 누군가 편집한 내용과 충돌한다는 걸 알 수 있다.

git의 구성 요소

git 저장소
저장소(Git repository)란 말그대로 파일이나 폴더를 저장해 두는 곳
그런데 Git 저장소에서는 파일이 변경 이력 별로 구분되어 저장됨
비슷한 파일이라도 실제 내용 일부 문구가 서로 다르면 다른 파일로 인식하기 때문에 파일을 변경 사항 별로 구분해 저장 가능

평소에는 내 PC의 로컬 저장소에서 작업하다가 작업한 내용을 공개하고 싶을 때에 원격 저장소에 업로드
물론 원격 저장소에서 다른 사람이 작업한 파일을 로컬 저장소로 가져오는 것도 가능

  [1] 저장소의 종류
로컬 저장소 : 내 PC에 파일이 저장되는 개인 전용 저장소, git 관련 파일이 생성되어 있는 특정 폴더
원격 저장소 : 파일이 원격 저장소 전용 서버에서 관리되며 여러 사람이 함께 공유하기 위한 저장소
		대표적으로 github, Backlog와 같은 저장소가 있다.


  [2] 로컬 저장소 생성
폴더 생성 -> 폴더로 이동 -> 우클릭 -> git으로 열기 -> git init

.git 폴더 확인

로컬 저장소를 삭제하고 싶으면 .git 폴더를 삭제

(3) 버전 관리
  [0] 계정 설정
git config --list
git config --global user.email "you@example.com"
git config --global user.name "Your Name"

  [1] 현재 상태 확인
git status

  [2] 변경 사항 확인
git diff

  [3] 버전 관리할 파일 추가
git add 파일이름
git add .       모든 파일 추가할 땐 . 사용

  [4] 버전 저장
git commit -m "메시지"

  [5] 되돌리기
git reset --soft 커밋내역		최신 파일 유지
git reset --hard 커밋내역		최신 파일 사라짐

  [6] 커밋 내역 확인
git log
git log --reflog



  [7] 실습
git init으로 저장소 생성

git status로 현재 저장소 상태 확인 (변경된게 있는지 확인 가능)

git add 파일 버전을 저장할 파일들을 추가

git commit 버전 저장

git log --reflog 버전 목록

git reset 으로 특정 버전으로 버전 변경

git restore . 로 해당 버전의 상태로 복구




(4) 브랜치
원본을 수정하지 않고 안전하게 새로운 기능을 추가해볼 수 있도록 하는 프로젝트의 복사본
  [1] 브랜치 생성
git branch 브랜치이름

  [2] 브랜치 변환
git switch 브랜치이름

  [3] 브랜치 병합
git switch 브랜치이름	메인이 되는 브랜치
git merge 다른브랜치이름

  [4] 브랜치 충돌
충돌난 파일 내용 수정
git add 파일이름
git commit

  [5] 실습
마스터로 git commit 몇 번 하고

git branch [브랜치 이름]로 브랜치 생성

git switch [브랜치 이름]로 브랜치 변경

변경한 브래치로 git commit 몇 번 하고

git switch master 로 브랜치 변경

변경한 브래치에서 변경했던 파일을 master로도 변경 (내용은 다르게)

git merge [브랜치 이름]  하면 충돌 발생

충돌난 파일 내용 수정
git add 파일이름
git commit


(5) 병합 방법
  [1] 3-way merge  

c1 -> c2 			c3
	c2-1 -> c2-2


  [2] fast-forward merge
병합 전
c1 -> c2 ->
	   c3 -> c4

병합 후
c1 -> c2 -> c3 -> c4

  [3] rebase and merge 

병합 전
c1 -> c2 -> c3
c2-1 -> c2-2

병합 후
c1 -> c2 -> c3 -> c2-1 -> c2-2

2) github
(1) github란?
git으로 관리하는 프로젝트를 업로드하거나 공유할 수 있는 웹 사이트

(2) git으로 관리하는 프로젝트 github에 저장하기
  [1] 원격 저장소 확인
git remote -v
git remote show 원격 저장소 이름

  [2] 원격 저장소 설정
git remote add 원격저장소이름 원격저장소주소
	ex) git remote add origin https://github.com/본인계정/tutorial

  [3] 원격 저장소에 공유
git push origin master 

3) 개발 도구와 연동
[1] 개발도구에 git 계정 설정
File -> Settings -> Version Control -> Github -> +버튼 클릭 -> Login Via Github -> 로그인 진행 -> OK

[2] 원격 저장소에서 파일 받아오기
VCS -> Get From Version Control -> URL: 원격저장소 주소 -> Clone

[3] 개발 도구에서 push 해보기
파일 생성 또는 편집 -> Git에서 commit -> Git에서 push

참고하면 좋은 곳
https://github.com/prgrms-be-devcourse/springboot-basic
https://github.com/f-lab-edu/food-delivery/wiki

post-custom-banner

0개의 댓글