- 설치 환경 : macOS 13.4
1. git 설치하기
2) 상단 링크 접속 후 아래와 같은 명령어를 복사하여 terminal 에 복사 한다
- 복사 대상 명령어 :
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
이때 터미널에 복사해서 사용했더니 명령어 실행 권한이 없다고 떠서 ( permission denied ) chmod u+x 또는 su ./bin/bash ~ 로 입력했더니 정상적으로 실행되는 것을 확인할 수 있었다.
3) 설치 완료 후 ./brew install git 명령어를 실행 한다
설치 완료 후 git --version 을 입력해서 정상적으로 설치된 버전을 확인할 수 있다.
4) git 을 사용할 폴더 위치에서 terminal 실행 후 기본 세팅 명령어 추가 실행 한다.
$ git config --global init.defaultBranch main
-> 기본 브랜치를 main 으로 설정하겠다는 의미이다.
$ git config --global user.email "[사용자메일주소]"
$ git config --global user.name "[사용자명]"
$ git init
-> 위 명령어를 입력하면 입력한 디렉토리에서 git 파일이 생성된다.
$ git add [filename]
-> 스테이징할 파일명을 입력한다.
$ git commit -m [메모내용]
-> 커밋할 메모를 지정한다. 커밋 내용이 있어야 정상적으로 적용된다.
$ git log --all --oneline
-> git 을 사용한 로그를 확인할 수 있다.
$ git status
-> 현재 상태를 확인할 수 있다 ( 스테이징 상태 )
cf.
staging: 커밋할 파일을 지정하는 개념이다. 커밋을 실행하면 스테이징한 파일에 대해 커밋이 진행 된다.
staging area : 스테이징 된 파일들을 저장하는 공간을 의미한다.
repository : commit 을 통해 저장되는 공간을 의미한다.
2. 기본 명령어
1) git branch
branch 를 통해서 main 커밋 내용을 기반으로 서브 소스코들을 관리할 수 있다.
서로다른 파일을 수정한 버전끼리 합치는거면 크게 상관 없지만 같은 파일을 수정했을 경우 conflict 발생하니 주의하도록 한다.
$ git branch [생성브랜치명]
$ git switch [변경할 브랜치명]
$ git merge [합칠 브랜치명]
$ git branch -d [브랜치명] // merge 완료 된 브랜치를 삭제하는 명령이다.
$ git branch -D [브랜치명] // 잘못만든 브랜치명 삭제한다.
2) git merge, git rebase
rebase : 간단한 branch 들에 대해 깔끔하게 커밋할 수 있다.
merge : branch 들을 하나로 합칠 수 있다. 아래 순서대로 진행 하도록 한다.
$ git switch [서브브랜치]
$ git rebase [서브브랜치]
$ git switch [main]
$ git merge [서브브랜치]
3) git squash and merge
merge 시 squash 를 사용하면 git 로그가 깔끔해지는 효과를 얻을 수 있다.
$ git merge --squash [새로운브랜치]
4) git retore
지정한 commit 상태로 파일을 되돌릴 수 있다.
$ git restore [파일명] // 지정한 파일명에 대해 최근 commit 상태로 되돌릴 수 있음
$ git restore --source [커밋아이디] [파일명] // 특정 커밋아이디 시점으로 복구 할 수 있음
$ git restore --staged [파일명] // 특정 파일에 대해 staging 지정한 것을 취소
5) git revert * 사용시 conflict 주의 !!!
작업했던 내용을 지우고 소스를 복구한다. ( 소스 복구 기록이 로그에 남는다 )
$ git revert HEAD // 제일 최근 내용 복구함
$ git revert [커밋아이디]
// 특정 커밋 아이디에 작업했던 내용을 지우고 소스 복구 가능 .
//예를들어 a + b 가 합쳐진 소스에 대해 b 항목에 대한 커밋아이디를 지정하여 revert 처리하면
//a 소스만 남은 상태로 복구
6) git reset
지정한 시점으로 코드를 롤백한다. ( 로그에 남지 않는다. )
$ git reset --soft [커밋아이디] // 리셋할 때 (코드 롤백시) 변동사항(롤백대상내용을) 지우지 않고 스테이징에 저장함
$ git reset --hard [커밋아이디] // 지정한 커밋아이디 시점으로 코드를 롤백함
$ git reset --mixed [커밋아이디] // 리셋할 때 변동사항 지우지 않고 unstage 함
'Dev > Git' 카테고리의 다른 글
3 way merge 란? (0) | 2024.11.24 |
---|---|
git rm 명령어를 통해 파일 삭제 하기 (0) | 2023.12.06 |
git fetch 와 push 차이 (0) | 2023.12.06 |
local 에 있는 폴더를 git 에 한번에 올리기 (1) | 2023.12.06 |
git online repository 연결하기 (0) | 2023.11.30 |