일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- React
- 웹개발공부
- react_useeffect
- node.js 초기설정
- DB
- map()함수
- 자식커밋 쌍방향 재배치 오류
- css
- react_usecallback
- react_usememo
- JavaScript
- vercel
- 웹개발
- 차등프라이버시
- props {}
- 제로샷-원샷-퓨샷
- server비교
- html
- C++
- react_usereducer
- 자바
- 소스트리
- java
- 알고리즘
- 미디어쿼리
- 코린이
- js
- 커밋메시지 변경하기
- 내돈내산
- branch 합치기
- Today
- Total
Soony's House
[Git/SourceTree] Sourcetree '자식 커밋 쌍방향 재배치(Interactive Rebase) 안 뜸' 해결하기 본문
[Git/SourceTree] Sourcetree '자식 커밋 쌍방향 재배치(Interactive Rebase) 안 뜸' 해결하기
soonybutter 2025. 5. 30. 15:48
커밋 메시지를 변경하기 위해 자식커밋쌍방향 재배치 를 클릭했는데 텅 비어있다. .
Sourcetree에서 자식커밋 쌍방향 재배치(Interactive Rebase)가 나타나지 않는 이유
1. 브랜치가 HEAD 상태가 아닌 경우
반드시 로컬 브랜치에 체크아웃되어 있어야 한다.
Detached HEAD 상태에서는 해당 메뉴가 비활성화된다.
→ Sourcetree 상단에서 현재 브랜치가 정상적으로 선택되어 있는지 확인해야 한다.
2. 현재 브랜치에 커밋 수가 부족한 경우
쌍방향 재배치는 최소 두 개 이상의 커밋이 존재해야 실행할 수 있다.
커밋이 1개 이하일 경우, 메뉴가 나타나지 않는다.
3. 메인 브랜치(main/master)에서 실행한 경우
일반적으로 rebase는 기능 브랜치(feature/xxx 등) 에서 사용한다.
메인 브랜치에서는 fast-forward 방식 병합을 우선시하기 때문에, 메뉴가 제한될 수 있다.
4. Sourcetree의 UI 버그 또는 메뉴 위치 문제
메뉴가 숨겨져 있거나, 구버전의 UI 버그로 인해 보이지 않을 수 있다.
커밋 우클릭 → 쌍방향 재배치 시작
상단 메뉴 작업 → 쌍방향 재배치 시작
→ Sourcetree를 최신 버전으로 업데이트하거나, 다음 경로에서 메뉴를 수동으로 찾아야 한다.
*나의 경우 이게 원인이였다..
5. Git 설정에 의한 문제
.gitconfig 파일의 설정이 영향을 줄 수도 있다. 다만, 일반적인 상황에서는 큰 원인이 되지 않는다.
확인 명령어
git config --global rebase.autosquash
그리고 최후의 대안 : 터미널에서 직접 실행
1. 터미널 열기
현재 Git 프로젝트 디렉토리에서 터미널을 연다.
2. 커밋 로그 확인
변경하고 싶은 커밋이 몇 번째인지 확인하기 위해 다음 명령어를 입력한다.
git log --oneline
ex) 예를 들어 7c4e12a 커밋 메시지를 바꾸고 싶다면, 해당 커밋은 HEAD로부터 두 번째 커밋이다.
e3a1b9f Fix: login button margin
7c4e12a Add: login form UI
f7b3d2c Init: project setup
3. 리베이스 실행
git rebase -i HEAD~3
HEAD~3은 최근 3개의 커밋을 대상으로 한다. 대상 커밋보다 약간 더 넉넉하게 잡는 것이 좋다.
4. 편집기에서 pick → reword 변경
리베이스 에디터가 열리면 다음과 같은 형식이 나옴.
pick e3a1b9f Fix: login button margin
pick 7c4e12a Add: login form UI
pick f7b3d2c Init: project setup
바꾸고 싶은 커밋 줄에서 pick을 reword로 바꾼다.
pick e3a1b9f Fix: login button margin
reword 7c4e12a Add: login form UI
pick f7b3d2c Init: project setup
저장 후 종료한다.
5. 새로운 커밋 메시지 입력
변경 대상 커밋에 대해 메시지를 입력하라는 창이 뜬다. 원하는 메시지를 입력하고 저장 후 종료한다.
6. 리베이스 완료 확인
리베이스가 정상적으로 완료되면 다음과 같은 메시지가 출력된다.
Successfully rebased and updated refs/heads/your-branch-name.
💡 주의: push한 커밋이면 --force 필요
이미 원격 저장소에 push한 커밋을 수정한 경우, 강제 푸시 하기!!
'⚙️ERROR & CS > ERROR' 카테고리의 다른 글
[Error/OS] 윈도우 0xd0000225 오류 / 업데이트 후 로그인 오류 (0) | 2025.02.15 |
---|---|
[Error] EPERM: operation not permitted (1) | 2025.01.23 |
[Error] ORA-02292: 무결성 제약조건이 위배되었습니다- 자식 레코드가 발견되었습니다. (1) | 2025.01.14 |
[Git/ Sourcetree] rebase 충돌 해결법 (0) | 2024.12.19 |
[에러] Path contains invalid character: 바 (0) | 2024.10.30 |