Git | 내 컴퓨터에 설치되는 프로그램이면서 형상관리 (분산형 버전관리)를 하는 명령어 프로그램 |
소스 코드가 변경된 이력을 쉽게 확인 | |
특정 시점에 저장된 버전과 비교 하거나 특정 시점으로 되돌아가기 ㅇ |
|
내가 올리려고 하는 파일이 누군가 편집한 내용과 충돌한다면 서버에 업로드 할 때 경고 메시지가 발생 | |
git hub는 git으로 관리하는 프로젝트나 코드를 업로드 혹은 공유할 수 있는 '웹 사이트'이다 |
|
git과 git hub는 완전히 다른 프로그램 |
[2] 로컬 저장소 생성
폴더 생성 -> 폴더로 이동 -> 우클릭 -> git으로 열기 -> git init
.git 폴더 확인
로컬 저장소를 삭제하고 싶으면 .git 폴더를 삭제
저장소 | 파일이나 폴더를 저장해 두는 곳이다. repo라고 줄여서 말함 |
파일이 변경 이력 별로 구분되어 저장됨 | |
비슷한 파일이라도 실제 내용 일부 문구가 서로 다르면 다른 파일로 인식하기 때문에 파일을 변경 사항 별로 구분해 저장 가능 | |
평소에는 내 PC의 로컬 저장소에서 작업하다가 작업한 내용을 공개하고 싶을 때에 원격 저장소에 업로드 |
|
격 저장소에서 다른 사람이 작업한 파일을 로컬 저장소로 가져오는 것도 가능 |
|
저장소의 종류 | |
로컬 저장소 | 내 PC에 파일이 저장되는 개인 전용 저장소, git 관련 파일이 생성되어 있는 특정 폴더 |
원격 저장소 | 파일이 원격 저장소 전용 서버에서 관리되며 여러 사람이 함께 공유하기 위한 저장소 |
대표적으로 github, Backlog와 같은 저장소가 있다. | |
1. 커밋과 스테이징에 대해 확실한 이해와 협업을 위한 깃 훈련이 필요할 듯 하다
2. mark up과 mark down에 대한 구분도 필요
로컬 저장소 생성
폴더 생성 -> 폴더로 이동 -> 우클릭 -> 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
Untracked : 스테이징 영역에 추가되지 않은 상태
Tracked : 스테이징 영역에 추가된 상태
Modified : 스테이징 영역에 있는 파일의 내용이 수정된 상태
Unmodified : 수정된 내용을 다시 스테이징 영역에 추가한 상태
[2] 변경 사항 확인
git diff
[3] 버전 관리할 파일 추가(파일은 스테이징 영역으로 추가)
git으로 공유하면 안되는 파일들은 .gitignore 파일에 목록을 작성하여 관리
git add 파일이름
git add . 모든 파일 추가할 땐 . 사용
[4] 버전 저장
그냥 커밋할 때
git commit -m "메시지"
템플릿으로 커밋할 때
git config --global commit.template .gitmessage.txt
git commit
[5] 커밋 내역 확인
git log
git log -p
git log --all
(4) 수정하기
[1] 스테이징 되돌리기
git reset [파일 이름]
git restore --staged [파일 이름]
[2] 커밋 내용 수정하기
가장 최근의 커밋 내역을 덮어쓰기
git commit --amend -m "메시지"
[3] 커밋 되돌리기
git reset [옵션] [커밋 해시]
--hard : 작업 디렉토리 변경, 스테이징 영역 변경, 저장소 변경
--mixed : 작업 디렉토리 유지, 스테이징 영역 변경, 저장소 변경, 옵션을 따로 안쓰면 기본으로 실행되는 옵션
--soft : 작업 디렉토리 유지, 스테이징 영역 유지, 저장소 변경
[4] 커밋 참조 내역 확인하기
git reflog
(5) 커밋 메시지 작성 규칙
무조건 지켜야하는 것은 아니지만 지키면 협업하기에 좋은 문화
2) github
(1) 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 [원격 브랜치]
[4] 원격 저장소의 내용을 내 저장소로 가져오기
내가 현재 위치한 브랜치로 원격에 있는 브랜치를 가져온다
git pull origin [원격 브랜치] 가져오고 merge까지 자동으로 수행
git fetch origin [원격 브랜치] 가져오고 merge 안함, 직접 확인 후 merge를 수동으로 진행 후 작업
[5] 로컬에 저장소가 없을 때 원격 저장소 가져오기
git clone [원격저장소 주소]
3) README.md 작성
0. 개행
내용 끝에 띄어쓰기 2번
1. 제목
\# 제목
\## 제목
\### 제목
또는
제목
\==========
제목
\----------
2. 목록 표시
1. 첫번째
2. 두번째
3. 세번째
* 첫번째
* 두번째
* 세번째
3. 블록 표시
\> 전체 블록
\> > 제목
\> > > 내용
4. 코드나 명령어
\```sh
\```
\```code
\```
5. 가운데 정렬
\
정렬 할 내용\
6. 그림 추가
\
7. 링크 추가
[화면에 표시할 내용](링크 주소)
4) 브랜치
원본을 수정하지 않고 안전하게 새로운 기능을 추가해볼 수 있도록 하는 프로젝트의 복사본
[1] 브랜치 생성
git branch 브랜치이름
[2] 브랜치 변환
git checkout 브랜치이름
[3] 브랜치 병합
git checkout 브랜치이름 메인이 되는 브랜치
git merge 다른브랜치이름
[4] 브랜치 충돌
충돌난 파일 내용 수정
git add 파일이름
git commit
[5] 실습
마스터로 git commit 몇 번 하고
git branch [브랜치 이름]로 브랜치 생성
git checkout [브랜치 이름]로 브랜치 변경
변경한 브래치로 git commit 몇 번 하고
git checkout 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
5) 원격 저장소 공유하기
github에 레포 생성 -> Settings -> Collaborators -> Add people
-> 초대할 사람의 email 입력 -> 클릭 -> 초대
초대받은 사람이 -> 메일 확인 -> View invitation -> Accept invitaion
6) 개발 도구와 연동
[1] 개발도구에 git 계정 설정
햄버거 버튼 -> File -> Settings -> Version Control -> Github -> +버튼 클릭 -> Login Via Github -> 로그인 진행 -> OK
[2] 원격 저장소에서 파일 받아오기
[3] 개발 도구에서 push 해보기
파일 생성 또는 편집 -> Git에서 commit -> Git에서 push
참고하면 좋은 곳
https://github.com/prgrms-be-devcourse/springboot-basic
https://github.com/f-lab-edu/food-delivery/wiki
'bootcamp > etc' 카테고리의 다른 글
0112 msa - 회원가입 시 이메일 전송 오류 (0) | 2024.01.12 |
---|