(Mac버전)git에 대해 알아보자 A-Z (설치부터 여러 명령어까지)

이룽지·2022년 8월 13일

git공부하기

목록 보기
1/3

출처 : 코딩애플

1. mac os git 설치법

homebrew 설치

🍺 homebrew
https://brew.sh/index_ko

homebrew가 설치되었다면

brew install git

설치되었는지+버전확인

git --version

2. git add, commit

git add 파일명
<!--해당 파일을 스테이징상태로 만든다.(커밋전단계)-->

git add .
<!--모든 파일을 스테이징상태로 만든다.-->

git commit -m '작명'

🤔스테이징이란?
현재 작업폴더에서 repository(저장소)로 이동하기 전에 대기장소

3. 상태 확인

git status

현재 작업중인 branch 확인가능
사실 VScode 사용하면 gitLensgitGraph 쓰면 더 편함

git log --all --oneline --graph

커밋내역 그래프로 확인가능 (이역시 gitGrapch가 좀더 보기 편한듯)

git diff 
<!--commit번호끼리 비교 가능-->
git difftool 
<!--commit번호끼리 비교 가능-->

커밋끼리 비교가능

4. branch

git branch 브랜치이름
<!--브랜치 생성-->
git switch 브랜치이름
<!--해당 브랜치로 이동-->
git branch -d 브랜치이름
<!--merge완료된 브랜치 삭제-->
git branch -D 브랜치이름
<!--merge안된 브랜치도 그냥 삭제해버리기-->

브랜치는 기존코드의 복사본

5. merge

<!--합치고 싶은 브랜치에서 작업-->
git merge 합칠브랜치이름

<!--rebase and merge-->
git switch 새로운브랜치
git rebase main
git switch main
git merge 새로운브랜치

<!--squash and merge-->
git switch master
git merge --squash 브랜치명
git commit -m 작명

브랜치끼리 수정된 파일이 겹치지 않으면 그대로 성고
겹치는 파일이 있으면 충돌(conflict)발생
충돌된 파일에서 적용할 코드를 선택하여 저장하면 브랜치 완료

merge의 여러종류들

  • 3-way merge
  • fast-forward merge
  • rebase and merge
  • squash and merge

3-way merge

각 브랜치에 신규 커밋이 1회 이상 있을때 두 브랜치를 합쳐 새로운 커밋을 생성하는 merge의 기본 작동방식

fast-forward merge

새로운 브랜치에만 커밋이 있고 기존 브랜치에 커밋이 없어서 새로운 브랜치가 메인이 되는 브랜치

rebase and merge

브랜치의 시작점을 다른 커밋으로 옮겨주는것.
3-way merge를 강제로 fast-forward merge로 하고싶을때
(간단하고 짧은 브랜치들을 rebase하면 깔끔)
(conflict 주의)

squash and merge

3-way merge는 양이 많아지면 복잡하고 더러워보임
(git log에 3-way merge된 브랜치들의 commit 내역도 같이 출력)
그래프로 보면 연결된 선을 끊어버리고 메인에서 이어지는걸로 보임
rebase는 시작점 자체를 다른 브랜치에서 이어지도록 하게함

6. 실수를 되돌리고 싶을때

	<!--파일의 상태를 마지막 commit으로 돌리고 싶을때-->
	git restore 파일명
    
    <!--입력한 commit아이디 시점으로 복구-->
    git restore --source 커밋아이디 파일명
    
    <!--특정 파일을 staging 취소-->
    git restore --staged 파일명
    
    <!--commit 취소하는법(여러개 취소가능)-->
    git revert 커밋아이디
    
    <!--최근 commit취소하는법-->
    git revert HEAD
    
    <!--과거로 모든걸 되돌리기
    !!협업시 사용주의 요망!!-->
	git reset --hard 커밋아이디
    
    <!--reset인데 변동사항 지우지 말고 스테이징해놓기-->
    git reset --soft 커밋아이디

	<!--reset인데 변동사항 지우지 말고 스테이징 X-->
    git reset --mixed 커밋아이디
  
	<!--최근 작성한 코드가 마음에 안들어서 보관함으로 보내기-->
  	git stash
  
  	<!--stash로 보관중인 리스트 확인하기-->
  	git stash list
  
  	<!--stash 할때 메모 작성가능-->
  	git stash save '메모'
  
  	<!--stash 불러오기(가장 최근것부터) 지정가능-->
  	git stash pop
  
  	<!--stash 삭제하기-->
  	git stash drop 스태쉬번호
  	<!--stash 전부삭제하기-->
  	git stash clear 
  
  

출처 : 코딩애플

profile
개발하는 고양이 룽지 개룽지

0개의 댓글