soosue
끄적끄적
soosue
전체 방문자
오늘
어제
  • 분류 전체보기 (31)
    • TIL (6)
    • 살짝 정리 (10)
    • note (1)
    • 내가필요해서만든 (1)
    • 막쓰기 (3)
    • spring (4)
    • java (2)
    • git (2)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • Logger 구현체 선택
  • Logger만들기
  • live templates
  • remote
  • switch -t
  • branch
  • logger template
  • git config파일
  • 로거 템플릿
  • git config alias
  • git alias 설정
  • git 명령어 alias
  • git
  • intellij logger template
  • git alias 하는법
  • Rebase
  • 로거 작성
  • Logger 구현체
  • slf4j Logger
  • .gitconfig 파일

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
soosue
TIL

[Git] fork, pull request, rebase

TIL

[Git] fork, pull request, rebase

2021. 7. 26. 21:43

pull request시에 conflict가 날 때, 처리하는 경우에 대해서 자습해보았다.


우선, pull request시 conflict가 나는 이유를 알아보자.
현재 upstream repository에 commit되어있는 코드가
내가 fork한 repository의 코드와 겹치는 부분이 있기 때문이다.

결국 내 코드에서 겹치는 부분을 해결하고 pull request를 해야한다. (conflict해결 후, fork한 repository에 push만 해주면 된다!)

겹치는 부분을 해결할 때는 2가지 방법이 있다.
1. upstream의 코드를 내 브랜치에다가 merge하는 방법.
2. upstream의 코드를 내 브랜치를 rebase를 해주는 방법.
선택은 2번을 하겠다. 왜냐하면 git graph가 더 깔끔하게 나오기 때문이다.

rebase를 하는 방법은
1브랜치 뒤에, 2브랜치를 붙이고 싶으면(1브랜치를 base로 하고 싶다면)
2브랜치로 switch한 상태에서 "git rebase 1브랜치"를 쳐주면 된다.

추가로 얘기하자면,
저 자습을 하면서 upstream과 origin(fork)와 local repository의 개념에 대해서 자리를 잡을 수 있었다.
git remote 명령어를 사용해보면서 upstream도 결국 remote repository중 하나라는 사실이었다. 그래서 fetch나 push또한 권한만 있다면 할 수 있다는걸 알 수 있었다.
그리고 push, fetch, pull, merge 등은 동기화를 위한 작업일 뿐이라는 사실도 알 수 있었다.

그 외에도 commit을 좀 다듬기 위해 git reset명령어도 사용할 수 있었고, 빠뜨린 커밋을 위해 git commit --amend 옵션을 이용해보기도 했다. 또 아까 말한 rebase를 이용해서 git graph도 깔끔하게 만들 수 있었다.

또 git checkout remotes/origin/bbb와
git checkout -t remotes/origin/bbb의 차이, 즉 detached HEAD상태로 가져오는 것도 알게 되었다.(단순히 -t를 붙이지 않으면 테스트용도로 checkout 해온다. switch를 하면 작업 내용이 사라진다)

P.S.
BFS(너비우선탐색)도 조금 봤다.

'TIL' 카테고리의 다른 글

[Git] git remote, 원격 저장소 확인, 추가, 수정, 삭제  (0) 2021.10.20
SQL 쿼리 실행 원리  (0) 2021.09.05
[Java] 동시성, 스레드 조심해야할 사항1  (0) 2021.08.07
[Git] Fork, Pull Request, Clone, Push  (0) 2021.08.01
[Spring] Filter란,  (0) 2021.07.30
    'TIL' 카테고리의 다른 글
    • SQL 쿼리 실행 원리
    • [Java] 동시성, 스레드 조심해야할 사항1
    • [Git] Fork, Pull Request, Clone, Push
    • [Spring] Filter란,
    soosue
    soosue

    티스토리툴바

    단축키

    내 블로그

    내 블로그 - 관리자 홈 전환
    Q
    Q
    새 글 쓰기
    W
    W

    블로그 게시글

    글 수정 (권한 있는 경우)
    E
    E
    댓글 영역으로 이동
    C
    C

    모든 영역

    이 페이지의 URL 복사
    S
    S
    맨 위로 이동
    T
    T
    티스토리 홈 이동
    H
    H
    단축키 안내
    Shift + /
    ⇧ + /

    * 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.