했던것들/git

했던것들/git

내가 썼던 git 명령어 모음

특정 커밋 주소로 되돌아가기. (git restore 사용) 조건 - 모든 파일들을 특정 커밋 주소로 돌렸어야했음. git restore --source 깃커밋아이디 .

했던것들/git

git squash 실습

git squash는 여러번 커밋한 이력을 하나의 커밋 이력으로 만드는 데 사용한다. git squash를 위해 상황을 만들었다. 일단 main에서 뻗어나온 squash라는 브랜치는 커밋 기록을 3개나 가지고 있다. 이 자잘한 모든 기록들이 main 브랜치에 merge된다면 기록이 상당히 번잡해질 것이다. 이 때 git squash 기능을 사용하면 브랜치 내 커밋이 많았더라도 main에는 1개의 커밋만 남겨 merge해줄 수 있다. 방법은 매우 쉽다. 머지할 브랜치로 넘어가 아래의 명령어만 치면 된다. git merge --squash 브랜치명 git commit -m '커밋메시지'

했던것들/git

git rebase (리베이스) 실습

git rebase는 main에서 뻗어나온 브랜치의 시작점(base)을 main으로 바꿔주는 기능이다. 그림으로 보면 아래와 같다. 실습 rebase 실습을 위해 위와 같이 세팅을 해놓았다. 위 branch의 커밋 상태를 그림으로 표현하면 아래와 같다. git rebase 브랜치명 rebase를 하기 위해서는 rebase를 할 브랜치에 먼저 이동한 후 rebase의 기준이 될 브랜치명을 적어주면 된다. git rebase main을 입력한 후의 그래프는 아래와 같다. 이 상태에서 merge를 해주면 rebase_branch가 fast-forward merge 방식으로 동작하여 하나의 브랜치로 합병된다.

했던것들/git

git branch 목록 확인 및 브랜치 삭제

메인 브랜치에 merge를 하더라도 브랜치는 남게된다. 브랜치가 여러개 남아있으면 관리가 복잡해질 수 있으므로 쓸모없는 브랜치들은 삭제해주는 것도 중요하다. 먼저, 내 git에 어떤 브랜치들이 있는지 확인하는 명령어부터 공부해보도록 하자. git branch (깃 브랜치 목록) 내 git 내 브랜치 목록은 아래의 명령어로 확인 가능하다. git branch git branch 삭제 깃 브랜치 삭제에는 merge가 완료된 브랜치 삭제 merge가 실행되지 않은 브랜치 삭제 두 방법이 존재한다. git branch -d 브랜치명 (merge가 완료된 브랜치 삭제) git branch -d 합병(merge)된브랜치명 git branch -D 브랜치명 (merge가 안된 브랜치 삭제) git branch -D ..

했던것들/git

git merge 동작 방식 (fast forward merge)

패스트 포워드 머지는 main 브랜치에서 뻗어나온 브랜치에만 commit이 있고 main 브랜치에는 commit이 없을 경우에 merge를 하면 뻗어나온 브랜치가 main 브랜치가 되는 동작 방식이다. 아래는 main에서 뻗어나온 브랜치만 commit이 있는 경우를 보여주는 그래프이다. 그림으로 보면 아래와 같다. 이와 같은 상태에서 main에 머지할 경우 fast-forward 동작 방식으로 merge된다. 즉, main 브랜치가 fast-foward가 된 것이다. (말만 어렵지, 굉장히 직관적이다.)

했던것들/git

git merge 동작 방식 (3-way merge)

3-way merge git merge에는 고유의 동작 방식이 존재하는데 메인 브랜치와 신규 브랜치가 각각 신규 커밋이 1개 이상 있을 경우에 두 브랜치를 merge할 경우 브랜치의 두 버전이 합쳐져서 최종적으로 main에 남게 되는 것을 말한다. 말로하니까 어렵지 실제로 보면 어렵지않다. 일단 아래와 같이 브랜치를 준비해놓은 상태이다. - 커밋명이 '푸쉬' 인 main 브랜치에서 three-way 브랜치가 뻗어나왔다. - three-way 브랜치는 쓰리웨이연습, 쓰리웨이연습2로 2개의 커밋이 있는 상태이다. - main 브랜치는 three-way 브랜치를 만든 후 메인 수정이라는 별도의 커밋을 해놓은 상태이다. 즉, 아래의 그림과 같다. 이 때 main 브랜치로 이동해서 three-way 브랜치를 me..

했던것들/git

git branch/merge 명령어 및 연습

git branch 생성 git branch 브랜치이름 git checkout 브랜치명 내가 보고있는 브랜치를 변경한다. git checkout main 을 입력하면 main 브랜치로 가게 되고 git checkout 연습브랜치 를 입력하면 연습브랜치로 가게 된다. git log --graph --oneline --all (현재 브랜치 커밋 상황을 그림으로 보기) git merge (branch 합치기) 브랜치에서 수정한 코드를 다시 main 브랜치로 옮기고 싶다면 git merge 명령어를 이용하면 된다. git checkout 메인브랜치(디폴트로 사용하는 브랜치) git merge 합칠브랜치명 이 때 주의사항은... 먼저 default 브랜치(별도의 설정이 없다면 main 브랜치 또는 master 브..

했던것들/git

git 명령어 (init, add, commit, restore, log)

1. git init 깃을 이용할 폴더 내 경로에서 터미널이나 git bash를 이용하여 git init을 입력 그렇게 한다면 git이 git init을 선언한 폴더를 감시하기 시작한다. 2. git status 추적되고 있는 git 폴더 내의 파일 상태를 알려줌. git init을 한 상태에서 aa.txt, bb.txt, cc.txt를 만든 뒤 git status를 입력했다. git은 추적되지 않은 새 파일 aa.txt, bb.txt, cc.txt을 탐지했고, 아직 add되지 않았음을 말해준다. 3. git add 파일명 // git add . 'git add 파일명'을 입력하면 한개의 파일만 git에 add할 수 있다. git add aa.txt 를 입력하자 aa.txt만 커밋 대기 목록(stagin..

했던것들/git

git 환경설정(config) 기초 명령어

깃 환경설정 확인 git config --list 브랜치 디폴트값 환경설정 명령어 git config --global init.defaultBranch main 메인 에디터 Visual Studio Code로 설정하기 git config --global core.editor "code --wait" 환경설정에 내 email과 name 등록하기(git 환경설정) git config --global user.email "깃@메일주소.com" git config --global user.name "깃닉네임" 깃 환경설정 삭제 git config --unset --global user.name git config --unset --global user.email

2DC
'했던것들/git' 카테고리의 글 목록