# git rebase
git 간단명료 사용법/ 브랜치 설명/git branch/git merge/git rebase/git init/ git error/ git branch삭제/git 커밋삭제/git revert/ git reset/ HEAD개념/git 파일 삭제/collaborator
먼저 맨 처음 repository생성 후 주의:readme.md를 만들었다면 git init할 수 없다. 이미 커밋이 되어 버린상태라 병합 수 없기에 git clone을 해야한다. git init git remote add origin 주소 여기서 origin은 컨벤션에 따라 이름이 지정된것이지 이름을 따로 지정해줄 수는 있다. 그냥 이 git원격저장소의 별명이다. > git에 다른 작업이 있거나 할때 git clone 주소 => 폴더 전체로 클론 git clone 주소 . => 파일들만 따로 뽑아 클론 > 원격에 올릴때 git add . 현재폴더의 모든 것 더해주는것 원칙적으로는 git add file file file.... 하나하나 더해주는게 좋다. git reset 파일명 add해준거 stage에서 뺴기 git status git에 잘 올라가졌는지 파일의 현상태를 알려준다.
Git - 커밋 히스토리 변경 방법
최근 커밋이 아닌 과거 커밋의 커밋 메시지나 코드 변경의 내용을 바꾸기 위해 쓸 수 있다. 코드 변경 내역의 변경은 소급 적용되며 충돌 가능성에 주의해야 한다. 다른 개발자들과 협업 중인 경우 사전 합의되지 않은 커밋 히스토리 변경은 혼란을 초래할 수 있다. 우선 해당 브랜치의 커밋 히스토리 페이지로 이동한다. 콘솔도 해당 브랜치로 이동한다. 변경하고 싶은 커밋이 위에서부터 몇 번째 것인지 확인한다. n번째라고 가정. unstage된 변경사항이 있을 경우 먼저 처리한다. 커밋하거나 'git stash'할 수 있다. 콘솔에 'git rebase -i HEAD~n'를 입력한다. vim 에디터가 나온다. 커밋들이 n번째까지 시간 역순으로 나열되어 있고 옆에 pick이라고 씌여있다. i를 누르면 INSERT 상태가 되서 텍스트를 추가할 수 있다. 변경하려는 커밋의 옆에 있는 pick을 edit로 바꾼다. ESC를 누르고 :wq를 눌러서 나온다.

[Git 완전정복] merge, rebase로 인한 충돌을 해결하는 방법
Merge로 발생한 충돌 해결하기 main 브랜치와, conflict-1 브랜치 를 합친다고 생각해 보겠습니다. main 브랜치의 tigers 파일에 있는 내용은 이와 같습니다. conflict-1 브랜치의 tigers 파일에 있는 내용은 이와 같습니다. 두 파일을 비교해보면 같은 위치에 있는 manager의 이름이 다르다는 것을 알 수 있습니다. 이 경우, main이 conflict-1과의 merge를 시도한다면 어떻게 될까요? 바로 conflict가 발생하게 됩니다. 해당 파일을 text로 열어보면 파일 자체에도 '>>>>>>>' 가 추가되어 있습니다. - 발생한 충돌 처리하기 1. 충돌이 발생했을 경우 진행하고 있던 merge를 취소하고 싶다면

[Git 완전정복] branch를 합치는 방법 merge, rebase
서로 다른 브랜치를 합치는 두 방식 1. merge > merge : 두 브랜치를 한 커밋에 이어붙입니다. 브랜치 사용내역을 남길 필요가 있을 때 적합한 방식입니다. 아래의 사진은, 파란색 브랜치(main)가 초록색 브랜치(branchA)를 merge 하였습니다. 아래 상태는 아래의 코드를 수행한 결과입니다. 1. 합치고 싶은 브랜치 (다른 브랜치에서 정보를 가져오고 싶은 브랜치) 로 이동합니다. 위의 사진에서는 main 브랜치 (파란색) 로 이동합니다. 2. 대상 브랜치(정보를 가져오고 싶은 branch)를 뒤에 적습니다. 이 경우, branchA에서 새로운 정보가 추가되었다면, main에 없던 새로운 정보들이 추가되겠죠?
<Git Chapter 3> - 차원(Branch) 넘나들기 2
3. 브랜치를 합치는 두가지 방법 1. merge : 두 브랜치를 한 커밋에 이어붙임 브랜치 사용내역을 남길 필요가 있을 때 적합한 방식 merge 로 합치기 merge 하고자 하는 브랜치로(main) 이동 git merge (merge 할 브랜치 이름) 자동입력된 커밋 메세지 확인후 :wq로 저장종료 merge 는 reset 으로 되돌리기 가능 merge 된 브랜치는 삭제 git branch -d add-coach 2. rebase : 브랜치를 다른 브랜치에 이어붙임 한줄로 깔끔히 정리된 내역을 유지하길 원할 때 적합한 방식 이미 팀원과 공유된 커밋들에 대해서는 사용하지 않는 것이 좋음 rebase 로 합치

Git Rebase (+Conflict 해결하기)
git rebase 명령어를 무작정 사용하기 이전에 git merge를 두고 왜 git rebase를 써야하는지부터 언급하려한다. git merge를 사용해서 많은 개발자들이 큰 규모의 프로젝트를 작업해야하는 상황이라 가정해보자. 각 각의 feature 브랜치가 머지될 때마다 "merge commit"이 남는다. 불필요한 커밋이 남는 셈이다. commit history가 아래의 이미지처럼 복잡해진다. git merge는 시간 순서로 정렬되기 때문에 다른 브랜치에서의 커밋 이력들이 겹쳐 추적이 어렵다. 반면, git rebase를 이용한다면 같은 작업을 진행한 commit 끼리 모아주기 때문에 커밋 히스토리를 깔끔하게 관리할 수 있다. Git Rebase
Git reset의 옵션 (soft, mixed, hard)
$git reset --soft [] : 커밋 전 상태로 되돌리기 reset 중에서 제일 강도가 약한 취소로, HEAD만을 움직이는 가장 약한 옵션 +git reset --soft을 실행 후 상태 staged상태 (add만 되어있는 상태), 즉 commit이라는 동작만 취소하게 됩니다. git reset --mixed [] : add(스테이지) 전 상태로 되돌리기 reset 중에서 중간 정도의 강도로, HEAD와 함께 스테이지도 되돌리는 옵션 +git reset -mixed을 실행 후 상태 unstaged (add 전 상태) 로 돌아가지만, 작업 디렉토리의 파일은 사라지지 않습니다. git reset --hard [] : 작업 디렉토리까지 되돌리기 reset 옵션 중에서 가장 강력한 옵션이기 때문에 주의해서 사용해야 합니다. HEAD와 함께 스테이지 뿐만 아니라 작업 디렉토리를 전부 되돌립니다.

[Git, Github] git push, pull, merge, rebase
git push(업로드 하기)하기 git pull(당겨오기) push하려고 할때 pull하는 2가지 방법 로컬 저장소의 내용이 원격 저장소의 내용보다 commit이 느릴 때는 commit을 할 수 없습니다. 따라서 2가지 방법을 적용하여 원격 저장소의 commit과 버전을 맞추어 주어야 로컬 저장소에서 작업한 내용을 commit할 수 있습니다. merge방식 소스트리에서 살펴보면 로컬의 메인브랜치와 원격의 메인 브랜치가 다른 브랜치라고 봅니다. 그리고 서로 다른 두 브랜치를 하나의 커밋으로 merge하여 새로운 commit을 생성합니다. 로컬 저장소와 원격 저장소의 달라진 시간선을 하나로 모아줍니다. 모아진 commit내용을 push하는 방식입니다.(동시진행) rebase 방식 원격 저장소에서 작업된 내용을 먼저 pull해서 commit 내역을 동일하게 만듭니다. 그리고 로컬 저장소에서 작업한 내용을 로컬 저장소에 c

[Git, Github] git merge, rebase 처음 사용해보기
merge, rebase: 브랜치를 합치는 2가지 방법 merge main branch에 다른 branch의 결과물이 합쳐지며 새로운 commit이 생성되는 것을 말합니다. merge는 만들었던 branch의 기록들이 나눠서 계속 유지됩니다. 브랜치의 사용 내역을 남겨둘 필요가 있는 경우 협업을 할 때 사용될 수 있습니다. rebase main브랜치로 통합되는 결과를 만듭니다. rebase는 만들었던 branch의 기록들이 없어지고 main이 된 branch에 합쳐진 commit 기록만 남게됩니다. history를 깔끔하게 관리하고 싶을 경우 rebase를 사용합니다. 협업을 할 때는 사용하지 않습니다. merge하기 merge할 때는 main이 될 줄기의 branch에서 진행합니다. (병합으로 합쳐질 branch에서는 진행하지 않습니다) 브랜치 병합 하기 브랜치와 브랜치를 병합합니다. > #### merge reset하기
git rebase
git rebase --abort rebase 한것을 무시하게 된다. git rebase --continue 보통 git rebase 충돌이 발생 했을때 사용하게 된다. 다 고쳤으면 git push origin [branch 이름] -f 를 하면 된다.
Git commit 정리하기 (rebase)
📌 rebase란? 지정한 커밋을 브랜치를 바꾸어 새로 작성하거나, 일괄 정리하거나 로그를 깨끗하게 만들어주는 커맨드입니다. 한마디로 지정 커밋을 재작성해 로그를 정리하기 위한 커맨드 입니다. ✏️ 사용법 rebase를 통해 현재 커밋을 원하는 시점의 커밋에 포함시킬 수 있습니다. HEAD~나 커밋 아이디로 원하는 커밋을 재작성합니다. 명령어를 입력하면 선택한 시점 이후부터 HEAD(현재)까지의 커밋 내용이 표시됩니다. 편집기로 이동해 원하는 작업을 선택할 수 있습니다. 변경 전 a,b,c 순 커밋 메시지입니다. 여기서 c를 a에 포함시켜 보겠습니다. 커밋c를 a의 뒤로 옮기고 pick을 fixup으로 수정해 c를 a에 포함시켰습니다. 알파벳(f) 또는 단어 전부(fixup)를 입력해 각각의 기능을 사용할 수 있습니다. 이 중 fixup을 사용해 메시지를 수정해보았습니다. 이 때, 편집하지 않고 자동으로 커밋을 포함시킬 수도 있습니다

git rebase --interactive
https://academy.dream-coding.com/courses/git git rebase 시 branch 변화 확인 https://github.com/gitkraken/vscode-gitlens/#interactive-rebase-editor- $ git config --global core.editor "code --wait" 
[Git] 이미 remote에 올라간 중요 파일 rebase로 해결하기
✏️ 작성자: 손연주 📌 작성자의 한마디: "remote에 올라가면 안될 파일이 올라갔어도 정신만 차리면 돌릴 수 있다!" 😱 이게 remote에 올라갔다고?! 협업 중에 종종 겪어봤을 무서운 상황일 것 같은데요,, 필자는 Swagger 적용 아티클을 준비하다가 Swagger 설정 파일에 HOST_URI를 박아서 커밋 푸쉬해버리는 끔찍한 실수를 저질러 버렸습니다...😭 물론 그 덕분에 git rebase를 제대로 사용해보는 기회가 생겼고 여러분에게도 공유하고 싶어서 글을 쓰게 되었습니다. 함께 해결하러 가볼까요? :) 1️⃣ 먼저 돌아가야 할 커밋 위치와 수정해야할 커밋 id를 체크합니다. 저는 하나의 커밋이 아닌 여러 커밋의 코드를 수정해야하는 상황이었습니다. 코드 수정해야 할 커밋들 : 노란 박스들 위의 커밋들의 코드를 수정하기 위해서는 `git rebase -i [commit Id

[Git] 이미 Github에 올라간 중요 파일 rebase로 해결하기
😱 이게 remote에 올라갔다고?! 협업 중에 종종 겪어봤을 무서운 상황일 것 같은데요,, 필자는 Swagger 적용 아티클을 준비하다가 Swagger 설정 파일에 HOST_URI를 박아서 커밋 푸쉬해버리는 끔찍한 실수를 저질러 버렸습니다...😭 물론 그 덕분에 git rebase를 제대로 사용해보는 기회가 생겼고 여러분에게도 공유하고 싶어서 글을 쓰게 되었습니다. 함께 해결하러 가볼까요? :) 1️⃣ 먼저 돌아가야 할 커밋 위치와 수정해야할 커밋 id를 체크합니다. 저는 하나의 커밋이 아닌 여러 커밋의 코드를 수정해야하는 상황이었습니다. 코드 수정해야 할 커밋들 : 노란 박스들 위의 커밋들의 코드를 수정하기 위해서는 git rebase -i [commit Id] 커맨드를 실행해야합니다. 이때, commitId 에는 수정하고 싶은 가장 첫 커밋의 이전 commitId가 오게 됩니다. 저는 가장 하단의 빨간 화살표가 가리키는 commitI
[Git] Git flow와 Git rebase
Git Flow 아마 개별로 혹은 팀 단위로 프로젝트를 진행하면서 가장 많이 쓰는 명령어는 다음 다섯가지일 것 같습니다. git add . git commit -m "message" git push origin branch git pull origin main git merge main 작업을 하는 feature/... 브랜치에서 merge를 진행하면 보통 main 브랜치로 병합이 되는데요. 배포를 해야하는데 feaure/... 브랜치에서 버그나 오류를 확인하지 않았다면 어떨까요..?😂 이런 문제점을 방지 하기 위해 git merge 이전 단계에 git rebase라는 명령어를 사용합니다. ✅ git rebase > main 브랜치에 merge 하기 전 작업 브랜치의 모든 commit들을 하나의 commit으로 만들고 하나의 PR 묶음으로 바꾼다!!! 📌 명령어 순서 우선 작업물을
[Git] 나를 위한 git-rebase 정리📒
git..니가 뭔데..나를...힘들게 하는데... 정말 알면 알수록 신기한 git의 세계~! 이번엔 git-rebase이올시다~! 📌Git 브랜치 - Rebase 하기 git에서 한 브랜치에서 다른 브랜치로 합치는 방법은 두 가지가 있다. 하나는 Merge이고 다른 하나는 Rebase다. (그동안 내가 해왔던 방식은 Merge) git 공식홈페이지를 토대로 차근차근 이해해보자 ▪️ 두 개의 나누어진 브랜치의 모습 ▪️ 두 개의 브랜치로 나누
Git rebase
git rebase Process git add . git commit - m "content" combining multiple commints tinto one :: git rebase -i BASE~(number ex. 3) rebase main ::git rebase -i main Git Merge Pros Simple and familiar Preserves complete history Maintains the context of the branch Cons Commit history can become polluted by lots of merge commits Debugging using git bisect can become h
git rebase
2차 프로젝트를 진행하면서 모두에게 떨어진 미션 중 하나는 github repository로 push를 할 때 git rebase를 활용, commit을 하나로 정리하여 올리라는 것이였습니다. 지금까지 git merge만 사용하다가 git rebase를 사용하려고하니 걱정도 되었지만 이후에 깔끔해진 commit 이력을 보면서 흐뭇해 하고 있는 저를 발견하게 되었습니다. 그래서 오늘은 이번 프로젝트에서 제가 git rebase를 어떻게 활용했는지 포스팅해보려 합니다. 1.팀프로젝트로 작업을 하고 있는데 다른 팀원의 브랜치가 merge됐다면? 이럴 경우에는 일단 이전과 동일하게 git pull origin main 명렁어를 사용하여 내 로컬 main과 github 메인을 동일하게 만들어 줍니다. 2.이후 작업하던 브랜치로 이동합니다. 지금까지는 이럴경우 git merge main 이라고 작성했지만 rebase를 활용하기로 했기때문에 `git rebase mai

git - rebase
git rebase git rebase는 불필요한 merge commit과 다수의 commit을 정리 할 수 있는 명령어 입니다 회사마다 merge / rebase를 하는 방식이 다르니 주의! 사용방법 > git rebase -i git rebase를 하게되면 터미널에 이러한 텍스트가 나올 것 이다. 최상단에 있는 부분은 건들지 않고🚨 insert 모드로 변환 후 하단에 있는pick 을 s 로 수정

Git Rebase
main에 다른 브랜치를 병합할 때 쓰이는 방법이 두가지인데, 하나는 merge가 있고, 다른 하나는 rebase 가 있다. 여기서는 rebase 에 대해서 공부하며 글을 써보도록 하겠다. Git rebase 알아야 하는 이유 git을 사용하면서 커밋을 할때 지난 커밋을 취소하거나 수정하고 싶을 때도 있고, 잘못된 브랜치에서 커밋해서 다른 브랜치로 커밋을 옮기고 싶은 경우도 있을 것이다. 이와 같이 이미 해버린 커밋을 수정하는 데에 유용하게 사용되는 커맨드가 바로 git rebase 이다. git rebase 는 이전 커밋을 수정하고, 커밋을 다른 브랜치로 옮기는 일을 할 수 있다. 또 지저분한 커밋이력을 남기고싶지않고, 하나의 커밋으로 깔끔하게 만들고 싶을때 사용할 수 있다. 그렇기 때문에 협업을 할 때에는 반드시 git rebase를 알아야 하고 , 또 git rebase를 잘 쓸 수 있어야 비로소 git의 기능을 잘 활용할수 있다고 생