[Git] #6. 명령어로 깃 다루기
깃 명령어를 알아야 하는 이유
소스트리로 commit, push, branch 등 공부 끝났는데, 굳이 왜 배워야 할까?
- 명령어를 잘 익혀두면 소스트리로 작업하는 것보다 훨씬 간결하고, 편리함.
- 소스트리를 사용할 수 없는 환경에서 사용할 수 있음.
앞의 이론을 잘 익혔다면 명령어 공부는 정말 빠르게 끝낼 수 있다!
- 운영 체제
- Windows에서는 git bash
- macOS에서는 터미널(terminal, iterm…)
명령어
저장소와 버전 만들기
기본적인 명령어
- pwd: 현재 경로 확인하기
- cd: 경로 이동하기
- clear: 화면 깨끗하게 만들기
[명령어]
- git init: 로컬 저장소 만들기
- git status: 작업 디렉터리 상태 확인하기
- git add: 스테이지에 올리기 (git add . : 모든 변경 사항을 스테이지에 올리기)
- git commit: 커밋하기 (git commit -am : add와 commit을 한 번에 하기)
- git log: 커밋 조회하기
- commit 메시지
git commit -m "commit message"
git commit
적고 Enter키 → VI 편집기에 a나 i 입력 후INSERT
뜨면 커밋 메시지 작성(제목, 엔터 후 본문) →:wq
나:w
,:q
입력
커밋 다양하게 조회하기
- git log –oneline: 한 줄에 log를 출력하기
- git log -p or patch: 각 커밋의 변경 사항 출력하기
- git log –graph: 그래프 보여주기 (한 줄로 그래프를 보고싶다면, git log –oneline –graph)
태그 관리하기
- git tag 태그: 태그 추가하기 (git tag v0.0.1)
- git tag –list: 태그 조회하기
- git tag –delete 태그: 태그 삭제하기
작업 내용 비교하기
- git diff / git cached: 최근 커밋과 작업 디렉터리 비교하기
- git diff –staged: 최근 커밋과 스테이지 비교하기
- git diff 커밋1 커밋2: 커밋끼리 비교하기 (순서 중요)
- git diff 브랜치1 브랜치2: 브랜치끼리 비교하기
작업 되돌리기
- git revert 커밋 해시: 버전을 되돌린 새로운 버전을 만들기
- git reset 커밋 해시: 버전을 완전히 되돌리기
- 디폴트 or git reset –mixed 커밋 해시: 스테이지까지 되돌리기
- git reset –soft 커밋 해시: 커밋만 되돌리기
- git reset –hard 커밋 해시: 커밋부터 스테이지, 작업 디렉터리까지 되돌림
작업 임시 저장하기
- git stash: 임시 저장하기
- git stash list: stash 목록 확인하기
- git stash -m “Commit Message”: stash 저장하기 (최근 항목이 0번이 됨)
- git stash apply 적용할 스태시: 임시 저장된 항목을 적용하기
- git stash drop 적용할 스태시: 임시 저장된 항목을 삭제하기
브랜치 관리하기
- git branch: 현재 브랜치 보기 (e.x. 현재 mster 브랜치에 check out 되어 있으면, * master로 표시)
- git branch 생성할 브랜치: 브랜치 생성하기 (check out은 X)
- git checkout 체크아웃 할 브랜치: check out 하기
- git checkout -b 생성할 브랜치: 브랜치를 생성함과 동시에 check out 하기
- git log / git log –branches: 현재 브랜치의 기록 보기 / 모든 브랜치의 기록 보기
- git merge 병합할 브랜치: 현재 브랜치에 병합하기
[Merge] 예시
- git checkout master: 병합 할 브랜치에 check out
- git merge foo
- git branch -d foo: 병합된 브랜치는 삭제하는 게 좋음
[충돌 발생했을 때]
- 직접 수정(둘 중 하나만 남기기)
- 커밋하기
rebase
[rebase 예시]
- git checkout foo: rebase 할 foo 브랜치로 check out 하기
- git rebase master: master 브랜치로 rebase 함
clone, push
- git clone
: SSH 주소로 원격 저장소 clone하기 - cd <저장소 이름="">: clone한 저장소로 이동하기저장소>
- ls / ls -a: 저장소 내 파일 목록 확인하기 (-a 옵션은 숨김 파일까지 표시)
- git branch -M main: master 브랜치 이름을 main으로 변경하기 (깃허브에서 하라는 대로 명령어 입력하면 됨)
- git remote add origin <주소>: 원격 저장소 추가하기주소>
- git remote -v: 등록된 원격 저장소 확인하기
- git push -u origin main: push하기 (최초 1회 실행하면 이후 git push만 입력해도 자동 푸시 가능)
fetch, pull
- git fetch -u origin main: 원격 저장소에서 최신 변경 사항을 가져오지만, 자동 병합은 하지 않음 (최초 1회 실행하면 이후 git fetch만 입력해도 자동 푸시 가능)
- git pull -u origin main: 원격 저장소에서 최신 변경 사항 가져오기 (최초 1회 실행하면 이후 git pull만 입력해도 자동 푸시 가능)
풀 리퀘스트(pull request)
- fork한 저장소가 원본 저장소보다 뒤쳐져있을 때 → 깃허브에서 Sync fork - Update branch 하기
Pull Request
- 기여하려는 저장소를 본인 계정으로 fork하기
- fork한 저장소를 clone하기
- 브랜치 생성 후 생성한 브랜치에서 작업하기
- 작업한 브랜치 push하기
- pull request 보내기
Pull Request 명령어
- git clone
- cd <원격 저장소="" 이름="">원격>
- git checkout -b <브랜치 이름="">: 브랜치 생성과 동시에 check out (main 브랜치에 커밋하면 안 됨!)브랜치>
- 스테이지 추가 및 커밋
- git push origin <브랜치 이름="">: 명시적으로 브랜치 이름을 입력해야 함브랜치>
- 깃허브에서 내용 확인 후 pull request 보냄
- 원래 저장소의 주인이 확인 후 merge 하면 끝
연습하기
커밋 계속 만들면서 연습하기 귀찮아서 gpt한테 문제 내달라고 했다.. 이렇게 하니까 훨씬 재밌다 ㅎㅎ 혼자 레벨도 높여준다..
Leave a comment