1. Git/GitHub 이란?
Git : 버전관리 시스템의 한 종류
- 이전 코드의 히스토리를 볼 수 있어서 이슈트래킹을 할 수 있음
- 대부분의 IDE에서 git을 연동할 수 있게 제공
- 본인의 계정인 GitHub과 연동할 수 있음
- 코드리뷰 가능
Github : Git을 기반으로 온라인으로 서비스하는 형태
- 내가 로컬 저장소에서 작업한 것을 원격 저장소로 올리거나(push)
- 원격 저장소에서 최신버전을 내 작업 공간으로 당겨온다(pull)
- 다른사람들에게 내 작업물을 공유할 수 있다!
2. Git 의 작동 구조 및 기초 명령어
명령어
- git fetch : 로컬 저장소에서 원격 저장소의 변경된 내역(커밋)들만 가져온다.
- git pull (fetch + merge) : 원격 저장소의 변경사항을 로컬 저장소로 가져오고, 작업하는 로컬 브랜치(working directory)로 merge까지 진행
- git clone : 원격 저장소 전체를 복제해 로컬 저장소에 가져온다.
- git add : working directory의 변경사항을 스테이지에 추가
- git commit : 스테이지에 있는 변경사항을 로컬저장소에 영구적으로 기록
- git push : 로컬 저장소에 있는 변경사항을 원격 저장소에 업로드
- git status : working directory와 스테이지의 현재 상태를 보여줌
- git diff : 변경된 파일의 실제 변경 내용을 보여준다
- git log : 커밋 로그를 확인
3. branch 다루기
- branch 생성 : git branch [생성할 브랜치명]
- branch 삭제 : git branch -d [삭제할 브랜치명]
- branch 강제 삭제 : git branch -D [삭제할 브랜치명]
- branch 이름 바꾸기 : git branch -m [기존 브랜치명] [새 브랜치명]
- branch 이동 : git switch [이동할 브랜치명]
- 브랜치 생성과 동시에 이동 : git switch -c [생성할 브랜치명]
- Merge : 다른 브랜치의 내용을 현재 브랜치로 가져와 합치는 명령어
- Commit : 현재 변경된 작업을 저장소에 저장하는 작업
4. git reset / revert
- reset : 특정 시점까지의 "모든" commit기록을 되돌아가며 삭제
- git reset —soft [돌아갈 커밋 해시] : 커밋은 취소되지만 해당 변경 사항은 스테이지에 남아있음
- git reset —mixed [돌아갈 커밋 해시] : 커밋은 취소되고 해당 변경사항은 working directory에 남아있다.
- git reset —hard [돌아갈 커밋 해시] : 커밋은 취소되고 해당 변경 사항은 모두 삭제
- revert : 특정 시점의 실행만 역으로 실행해 새로운 커밋기록을 남긴다.
- 같은 파일의 같은 위치에 변경이 있을 경우, 충돌이 일어날 수 있다.
- <<HEAD 부터 == 까지는 현재 저장소에 작성되어있는 소스코드를 의미
- == 부터 >> parent of xxxx 까지는 merge 대상인 브랜치에 작성되어있는 소스코드를 의미
- git revert —no-commit [커밋 해시] : 자동으로 커밋을 만들지 않고 변경 사항을 스테이징 영역에만 추가한다.
- git revert —continue : 충돌이나 다른 이슈를 해결하고 사용하면, 계속해서 revert 작업을 진행
- git revert —skip : 충돌이나 다른 이슈를 무시하고 다음 커밋으로 넘어감
- git revert —abort : revert 작업을 중단하고 이전상태로 되돌림
- 같은 파일의 같은 위치에 변경이 있을 경우, 충돌이 일어날 수 있다.
5. branch 합치기 - merge, rebase, 충돌해결
- git merge : 두 브랜치를 한 커밋에 이어 붙인다.
- 브랜치 사용내역을 남길 필요가 있을 때 적합한 방식
- git merge [합칠 브랜치명] : 현재 브랜치로 해당 브랜치를 병합
- git rebase : 브랜치를 다른 브랜치에 이어붙인다.
- 한줄로 정리된 내역을 원할 때 적합
- git rebase [기준이 될 브랜치명] : 현재 브랜치를 기준 브랜치에 이어붙임
6. 오늘의 소감 / 떠오르는 생각 :
- git 명령어를 제대로 공부 해본적이 없어서 revert, reset에 대해 막연한 두려움이 있었는데 이번을 계기로 git을 제대로 활용할 수 있어 좋았다.
Uploaded by N2T
'Dev > ESTsoft 오르미' 카테고리의 다른 글
CSS2 (Position & Flex) (0) | 2024.02.22 |
---|---|
CSS1 (기초 & CSS Box Model) (0) | 2024.02.22 |
HTML_2 (form, table) (1) | 2024.02.22 |
HTML_1 (기본개념) (0) | 2024.02.22 |
네트워크 기초 (0) | 2024.02.22 |