위코드-TIL-25-07.07-git rebase

jin_sk·2020년 7월 7일
0

위코드

목록 보기
48/49

git rebase-실습

 jin@jin-17Z990-R-AAC9U1  ~/git_6   master  git pull origin master
https://github.com/wecode-bootcamp-korea/git_6 URL에서
 * branch            master     -> FETCH_HEAD
이미 업데이트 상태입니다.
 jin@jin-17Z990-R-AAC9U1  ~/git_6   master  git branch feature/jsk
 jin@jin-17Z990-R-AAC9U1  ~/git_6   master  git checkout feature/jsk
'feature/jsk' 브랜치로 전환합니다
 jin@jin-17Z990-R-AAC9U1  ~/git_6   feature/jsk  vi README.md
 jin@jin-17Z990-R-AAC9U1  ~/git_6   feature/jsk ●  git add .
 jin@jin-17Z990-R-AAC9U1  ~/git_6   feature/jsk ✚  git commit -m "수정"
[feature/jsk c0199a0] 수정
 1 file changed, 3 insertions(+), 3 deletions(-)
 jin@jin-17Z990-R-AAC9U1  ~/git_6   feature/jsk  vi README.md        
 jin@jin-17Z990-R-AAC9U1  ~/git_6   feature/jsk ●  git add .
 jin@jin-17Z990-R-AAC9U1  ~/git_6   feature/jsk ✚  git commit -m "수정2"
[feature/jsk 13212dd] 수정2
 1 file changed, 3 insertions(+), 3 deletions(-)
 jin@jin-17Z990-R-AAC9U1  ~/git_6   feature/jsk  vi README.md         
 jin@jin-17Z990-R-AAC9U1  ~/git_6   feature/jsk ●  git add .
 jin@jin-17Z990-R-AAC9U1  ~/git_6   feature/jsk ✚  git commit -m "수정3"
[feature/jsk 5a8a568] 수정3
 1 file changed, 4 insertions(+), 4 deletions(-)
 jin@jin-17Z990-R-AAC9U1  ~/git_6   feature/jsk  git checkout master
'master' 브랜치로 전환합니다
브랜치가 'origin/master'에 맞게 업데이트된 상태입니다.
 jin@jin-17Z990-R-AAC9U1  ~/git_6   master  git pull origin master
remote: Enumerating objects: 1, done.
remote: Counting objects: 100% (1/1), done.
remote: Total 1 (delta 0), reused 0 (delta 0), pack-reused 0
오브젝트 묶음 푸는 중: 100% (1/1), 654 bytes | 654.00 KiB/s, 완료.
https://github.com/wecode-bootcamp-korea/git_6 URL에서
 * branch            master     -> FETCH_HEAD
   9b853a5..881cf37  master     -> origin/master
업데이트 중 9b853a5..881cf37
Fast-forward
 README.md | 10 ++++++++++
 1 file changed, 10 insertions(+)
 jin@jin-17Z990-R-AAC9U1  ~/git_6   master  git status
현재 브랜치 master
브랜치가 'origin/master'에 맞게 업데이트된 상태입니다.

커밋할 사항 없음, 작업 폴더 깨끗함
 jin@jin-17Z990-R-AAC9U1  ~/git_6   master  git checkout feature/jsk
'feature/jsk' 브랜치로 전환합니다
 jin@jin-17Z990-R-AAC9U1  ~/git_6   feature/jsk  git rebase -i master
자동 병합: README.md
충돌 (내용): README.md에 병합 충돌
error: 다음을 적용할(apply) 수 없습니다: 13212dd... 수정2
Resolve all conflicts manually, mark them as resolved with
"git add/rm <conflicted_files>", then run "git rebase --continue".
You can instead skip this commit: run "git rebase --skip".
To abort and get back to the state before "git rebase", run "git rebase --abort".
Could not apply 13212dd... 수정2
 ✘ jin@jin-17Z990-R-AAC9U1  ~/git_6  ➦ ae4a348 ●✚ >R>  git rebase --continue
README.md: needs merge
모든 병합 충돌을 편집하고 git add
명령으로 해결되었다고 표시해야 합니다
 ✘ jin@jin-17Z990-R-AAC9U1  ~/git_6  ➦ ae4a348 ●✚ >R>  vi README.md
 jin@jin-17Z990-R-AAC9U1  ~/git_6  ➦ ae4a348 ●✚ >R>  git rebase --continue
README.md: needs merge
모든 병합 충돌을 편집하고 git add
명령으로 해결되었다고 표시해야 합니다
 ✘ jin@jin-17Z990-R-AAC9U1  ~/git_6  ➦ ae4a348 ●✚ >R>  vi README.md         
 jin@jin-17Z990-R-AAC9U1  ~/git_6  ➦ ae4a348 ●✚ >R>  git add .
 jin@jin-17Z990-R-AAC9U1  ~/git_6  ➦ ae4a348 ✚ >R>  git rebase --continue
[HEAD 분리됨 368e3d3] 수정
 Date: Tue Jul 7 15:46:53 2020 +0900
 1 file changed, 6 insertions(+), 16 deletions(-)
자동 병합: README.md
충돌 (내용): README.md에 병합 충돌
error: 다음을 적용할(apply) 수 없습니다: 5a8a568... 수정3
Resolve all conflicts manually, mark them as resolved with
"git add/rm <conflicted_files>", then run "git rebase --continue".
You can instead skip this commit: run "git rebase --skip".
To abort and get back to the state before "git rebase", run "git rebase --abort".
Could not apply 5a8a568... 수정3
 ✘ jin@jin-17Z990-R-AAC9U1  ~/git_6  ➦ 368e3d3 ●✚ >R>  vi README.md         
 jin@jin-17Z990-R-AAC9U1  ~/git_6  ➦ 368e3d3 ●✚ >R>  git add .            
 jin@jin-17Z990-R-AAC9U1  ~/git_6  ➦ 368e3d3 ✚ >R>  git rebase --continue
[HEAD 분리됨 a74806a] 수정
 Date: Tue Jul 7 15:46:53 2020 +0900
 1 file changed, 23 insertions(+), 33 deletions(-)
 rewrite README.md (65%)
Successfully rebased and updated refs/heads/feature/jsk.
 jin@jin-17Z990-R-AAC9U1  ~/git_6   feature/jsk  git push origin feature/jsk
Username for 'https://github.com': jinsk9268
Password for 'https://jinsk9268@github.com': 
오브젝트 나열하는 중: 5, 완료.
오브젝트 개수 세는 중: 100% (5/5), 완료.
Delta compression using up to 8 threads
오브젝트 압축하는 중: 100% (3/3), 완료.
오브젝트 쓰는 중: 100% (3/3), 334 bytes | 334.00 KiB/s, 완료.
Total 3 (delta 2), reused 0 (delta 0)
remote: Resolving deltas: 100% (2/2), completed with 2 local objects.
remote: 
remote: Create a pull request for 'feature/jsk' on GitHub by visiting:
remote:      https://github.com/wecode-bootcamp-korea/git_6/pull/new/feature/jsk
remote: 
To https://github.com/wecode-bootcamp-korea/git_6.git
 * [new branch]      feature/jsk -> feature/jsk

맨처음 rebase 하고
맨처음꺼 빼고 s로 바꾸기

git rebase

https://gollumnima.github.io/posts/wecode8_2TIL_git_rebase

git flow

https://woowabros.github.io/experience/2017/10/30/baemin-mobile-git-branch-strategy.html

정리

## git rebase 실습 순서
# 1) 우리가 아는 일반적인 작업, 브랜치 따고 작업하는 과정 거치기
git clone 유알엘_주소
git branch feature/브랜치_이름 
git checkout branch feature/브랜치_이름 
# ---------------------------------- 
# 2) 커밋 메시지 날리기
vim README.md 
git add .
git commit –m "message" 
# ...Repeat... (작업진행, 커밋 반복)
# ----------------------------------- << 여기까지는 일반적인 작업
# 3) Rebase 수행
git checkout master 
git pull origin master 
git rebase –i master feature/브랜치_이름
# 최근 커밋한 목록이 뜨면 합쳐질 기준 커밋 메시지를 지정하기:
#    ex)최초 커밋을 p(pick), 나머지 s
# ----------------------------------- 
# 3-1) successfully rebased and updated 가 뜨면
# 평소와 마찬가지로 push 날리고 Github에서 Pull request 날리기
git push origin featuer/이름
# ----------------------------------- 
# 3-2) Conflict 가 나면 (피쳐 브랜치에서) 컨플릭을 해결하고 터미널에 출력된 메시지대로 진행
git add . 
git rebase --continue  
# 프롬프트에 수정사항이 사라질 때까지 반복
# ----------------------------------- << 근데 PR을 기다리다가 다른 사람 코드가 머지가 되면
# 4) 원격 마스터가 수정되었으므로 이를 다시 rebase로 싱크 해줘야 한다. 
# 내 커밋(코드는) 진작에 머지된 다른사람의 커밋 다음 시점으로 설정된다.
# 즉, 다시 master 브랜치를 와서 커플릭을 해결하자
git checkout master
git pull origin master
git checkout branch feature/브랜치_이름 
git rebase –i master feature/브랜치_이름
# ... 이렇게 3)으로 회귀해서 다시 작업 진행. 
# 다만 이때는 push 하는 과정에서 force push를 해줘야함
git push origin -f 

7.9 rebase

rebase시 맨처음꺼만 pick 로 두고 나머지 s로 바꾼다음에 커밋메시지 화면으로 넘어갈때
커밋메시지도 맨 처음거 남기고 삭제하고
맨처음꺼에서 고쳐주기

 ✘ jin@jin-17Z990-R-AAC9U1  ~/9-Chango-frontend   feature/main  git status
현재 브랜치 feature/main
커밋할 사항 없음, 작업 폴더 깨끗함
 jin@jin-17Z990-R-AAC9U1  ~/9-Chango-frontend   feature/main  git status          
현재 브랜치 feature/main
커밋할 사항 없음, 작업 폴더 깨끗함
 jin@jin-17Z990-R-AAC9U1  ~/9-Chango-frontend   feature/main  git checkout master
'master' 브랜치로 전환합니다
 jin@jin-17Z990-R-AAC9U1  ~/9-Chango-frontend   master  git pull origin master
https://github.com/wecode-bootcamp-korea/9-Chango-frontend URL에서
 * branch            master     -> FETCH_HEAD
이미 업데이트 상태입니다.
 jin@jin-17Z990-R-AAC9U1  ~/9-Chango-frontend   master  git checkout feature/main
'feature/main' 브랜치로 전환합니다
 jin@jin-17Z990-R-AAC9U1  ~/9-Chango-frontend   feature/main  git rebase -i master
[HEAD 분리됨 d311dcc] [add] main 레이아웃 완료 및 코드 리뷰 반영
 Date: Wed Jul 8 16:29:42 2020 +0900
 21 files changed, 1505 insertions(+), 58 deletions(-)
 create mode 100644 public/data/mainCategories.json
 create mode 100644 "public/data/mainCategories\353\240\210\354\212\250.json"
 create mode 100644 "public/data/mainCategories\355\231\210-\353\246\254\353\271\231.json"
 create mode 100644 public/data/mainHireData.json
 rewrite src/Pages/Main/Main.js (60%)
 create mode 100644 src/Pages/Main/MainComponents/MainNavCategoryLi.js
 create mode 100644 src/Pages/Main/MainComponents/MainPopularCard.js
 create mode 100644 src/Pages/Main/MainComponents/MainWholeCategoryLi.js
 create mode 100644 src/Pages/Main/MainComponents/mainNavInfo.js
 create mode 100644 src/Pages/Main/MainHire.js
 rewrite src/Routes.js (64%)
Successfully rebased and updated refs/heads/feature/main.
 jin@jin-17Z990-R-AAC9U1  ~/9-Chango-frontend   feature/main  git log
 jin@jin-17Z990-R-AAC9U1  ~/9-Chango-frontend   feature/main  git push origin feature/main
To https://github.com/wecode-bootcamp-korea/9-Chango-frontend.git
 ! [rejected]        feature/main -> feature/main (non-fast-forward)
error: 레퍼런스를 'https://github.com/wecode-bootcamp-korea/9-Chango-frontend.git'에 푸시하는데 실패했습니다
힌트: 현재 브랜치의 끝이 리모트 브랜치보다 뒤에 있으므로 업데이트가
힌트: 거부되었습니다. 푸시하기 전에 ('git pull ...' 등 명령으로) 리모트
힌트: 변경 사항을 포함하십시오.
힌트: 자세한 정보는 'git push --help'의 "Note about fast-forwards' 부분을
힌트: 참고하십시오.
 ✘ jin@jin-17Z990-R-AAC9U1  ~/9-Chango-frontend   feature/main  git push origin feature/main -f
오브젝트 나열하는 중: 57, 완료.
오브젝트 개수 세는 중: 100% (56/56), 완료.
Delta compression using up to 8 threads
오브젝트 압축하는 중: 100% (34/34), 완료.
오브젝트 쓰는 중: 100% (34/34), 11.30 KiB | 609.00 KiB/s, 완료.
Total 34 (delta 10), reused 0 (delta 0)
remote: Resolving deltas: 100% (10/10), completed with 8 local objects.
To https://github.com/wecode-bootcamp-korea/9-Chango-frontend.git
 + 6244689...d311dcc feature/main -> feature/main (forced update)

commit 이 한번 남는다

0개의 댓글