Git-GitHub 기본용어
main: 깃의 기본 브랜치(예전에는 master) -> local, remote
HEAD: 현재 작업 브랜치의 위치
origin: 깃의 기본 원격 브랜치 별명
clone: git의 처음 파일들을 local pc에 복제하는 명령어
pull: git의 remote 위치에 있는 가장 최신의 commit 및 push한 내용들을 가져오는 명령어
Git의 설정 명령
git config [설정키] [설정값]
현재 해당 깃 저장소의 설정
-> ex) git config user.name teacher
git config user.email teacher@naver.com
모든 깃 저장소에 해당하는 설정
git config --global user.name teacher
git config --global user.email teacher@naver.com
git config --list -> git 환경변수 설정키 설정값 보여주는 명령어
git log -> git 커밋한 내용들을 모두 볼 수 있는 명령어
git log -숫자 -> 숫자 개수만큼 로그 보기
git log --pretty=oneline -> 깃 커밋 로그를 한 줄로 보기
git add 파일명1 -> 새로 생성된 파일명1 파일을 commit할 수 있도록 Staged Area에 등록하는 명령어
git add 파일명1 파일명2 -> 새로 생성된 파일명1, 파일명2 파일을 commit할 수 있도록 Staged Area에 등록하는 명령어
git add . -> 현재 디렉토리(폴더)의 모든 새로 생성된 파일을 commit할 수 있도록 Staged Area에 등록하는 명령어
git commit -m '메시지 내용' -> git 로컬에 반영(스냅샵, 해시 생성)
git commit --amend -m '메시지 내용2' -> 현재 HEAD에 있는 commit메시지 변경하는 명령어
git commit -a -m '메시지 내용3' -> git add + git commit -m 기능
git status -> 깃 버전 관리 상태 확인
git init -> 깃 저장소를 세팅하는 명령어
git 버전 관리 되돌리기 명령어
git reset HEAD^: 마지막 커밋을 스테이징 하기 전 상태로 되돌리는 명령어(== git reset HEAD~1)
-> 최근 1개의 커밋 삭제 + 변경된 파일은 unstaging 상태로 유지
git reset --hard HEAD^: 최근 1개의 커밋 삭제 + 변경된 파일도 함께 되돌림
git reset HEAD^^: 마지막 2개의 커밋을 스테이징 하기 전 상태로 되돌리는 명령어(== git reset HEAD~2)
-> 최근 2개의 커밋 삭제 + 변경된 파일은 unstaging 상태로 유지
git reset --hard HEAD^^: 최근 n개의 커밋 삭제 + 변경된 파일도 함께 되돌림
git reset --hard 커밋ID~n: 해당 커밋 ID 기준 n개의 커밋 삭제 + 변경된 파일도 함께 되돌림
* 이니셜 커밋을 삭제하고자 하는 경우에는 다음과 같은 명령어로 삭제가 가능하다.
-> git update-ref -d HEAD
git rm --cached -rf .
git revert HEAD: 마지막 커밋을 되돌리면서 또 다른 커밋을 생성
reset의 사용용도 : local에서 커밋을 하고 push를 하지 않은 상태
revert의 사용용도 : local에서 커밋을 하고 push를 한 상태에서 또 revert한 파일을 push할 때
git branch: 현재 로컬에 있는 모든 브랜치를 보여주는 명령어
git branch 브랜치명: 로컬 브랜치를 만들기
git branch -r: 원격 브랜치 리스트 조회
gir branch -a: 로컬 및 원격 브랜치 리스트 전부 조회\
git branch -d 만들어진브랜치명: 로컬 만들어진브랜치명를 삭제
git checkout 만들어진브랜치명: 만들어진브랜치명으로 작업영역 변경
git checkout -b 만들어질브랜치명: 만들어질브랜치명을 만들고 작업영역까지 변경(git branch 브랜치명 + git checkout 브랜치명)
git checkout -b 만들어질브랜치명 remote브랜치명: 로컬 브랜치에 만들어질브랜치명으로 remote브랜치를 가져온다.
git checkout -t remote브랜치명: remote에 있는 remote브랜치명을 로컬 브랜치로 만들수 있는 명령어
git merge 머지할브랜치명: 해당 브랜치에서 머지할브랜치명을 merge
git restore --staged 파일명: Staged Area에 있는 파일명을 Untracked 상태로 변경
git 충돌해결 방법
- 충돌 발생
-- 2개의 브랜치 만들기
--- git branch feature1
--- git branch feature2
-- 2개의 브랜치에서 같은 라인 수정하고 commit
--- git checkout feature1 & 파일수정 & git commit -a -m '변경'
--- git checkout feature2 & 파일수정 & git commit -a -m '변경'
-- 첫번째 브랜치를 메인(master) 브랜치에 머지
--- git checkout master
--- git merge feature1
-- 두번째 브랜치를 메인(master) 브랜치에 머지 시도 -> 충돌
--- git merge feature2
- 충돌 해결하기
-- 충돌된 라인을 원하는 라인으로 수정
--- 텍스트파일 수정
-- 수정된 파일들 commit
Git 원격 저장소 관련 명령
git remote -v: 원격 저장소 정보 보기
git clone 원격저장소보기
git remote add origin 원격저장지주소repository: 원격 저장소(github)를 등록
git push --set-upstream origin 브랜치명: 로컬 작업한 내용(master 브랜치)을 원격 저장소(github)에서 저장
git pull: 원격저장소에 있는 내용들을 전부 로컬git에 저장
git fetch: 원격조장소에 있는 내용들을 전부 로컬git에 저장(머지하지 않음, 직접 머지해야 함)
참고내용
Git-Flow 관련 블로그
https://hudi.blog/git-branch-strategy/
GitHub 활용하기
PR실행
PR실행에서 merge
'Git' 카테고리의 다른 글
Git 명령어 총정리 (0) | 2023.02.06 |
---|