티스토리 뷰
오늘 하루종일 끙끙거렸던 과정 정리해본다.
다시는 헤매지맙시다.
1.상황
Git에 올려둔 branch가 오류가 생겨 clone이 정상적으로 되지 않는다.
clone 자체가 되지않기 때문에 해당 branch에 엎어치지 할 수 없을거라고 판단
2. 해결 과정
(1) 다른 branch 생성 후 강제로 push해보자
일단 branch 생성 후 정상적으로 동작하는지 확인
그리고 git 내에서 새 branch와 merge를 시도하였으나 -> Conflict가 발생
git에서 pull request 후 내가 원하는 소스로 엎어치기하고 push를 진행해보았다.
git pull origin main
이때 다음과 같은 오류가 발생
error: The following untracked working tree files would be overwritten by merge:
Please move or remove them before you can merge.
Aborting
그래서 git clean을 해보았다
git clean -d -f -f
그리고 다시 pull 하면 정상적으로 받아짐
그리고
그리고 다시 push
git push -u origin main
강제로 push 진행
git push -u origin main --force
또는
git push -u origin +main
그렇게 했더니 다음과 같은 에러 메시지가 발생한다.
failed to push some refs to ~~
원격 저장소에 내 로컬에 없는 파일이 있을 때 push 하면 발생하는 오류라고 한다.
또다시 pull 해서 진행해야한다고 한다. 근데 원격저장소에는 파일이 있고, 내로컬에는 없는게 맞는데 말이지..
왜냐면 몇가지 파일은 지울게 있었으니까.
(2) branch로 덮어서 병합
main branch로 전환한 후에 병합해본다.
git checkout main
//ours : 우리껄 쓰겠다 (현재 브랜치로 덮어서 병합)
git merge -Xours targetBranch
//theirs : 쟤네껄 쓰겠다 (목표브랜치로 덮어서 병합)
git merge -Xtheirs targetBranch
이것도 실패
(3) git 설정 삭제 후 다시 진행
// 로컬저장소의 git 히스토리 삭제 (.git)
rm -rf .git
// 로컬저장소 초기화
git init
그리고 다시 위에 했던 pull 및 강력 push 진행
다음가 같은 에러발생
fatal: Could not read from remote repository.
Please make sure you have the correct access rights and the repository exists.
이 때, remote repository를 읽을 수 없다고 하여 원격저장소 정보를 업데이트하였다.
그래도 똑같은 문제가 발생하여 원격저장소 연결 제거 후 재연결을 진행
// 원격저장소 정보 업데이트
git remote update
// 원격저장소 연결 상태 확인
git remote -v
// 원격저장소 연결 제거
git remote remove [원격저장소이름]
// 원격저장소 재연결
git remote add [원격저장소이름] [저장소URL]
그래도 같은 문제가 발생
그럼 혹시 Please make sure you have the correct access rights and the repository exists.
접근 권한 문제인가?
(4) 현재 로그인된 계정을 확인한다
git config user.name
git config user.email
계정을 변경하고 자 할 때는 뒤에 원하는 계정을 입력하면 된다.
git config user.name 이름
git config user.email 이메일
그리고 기존의 로그인 정보를 삭제한다.
난 Window라 다음과 같다.
제어판 > 사용자 계정 > 자격증명관리
git 관련 자격증명 클릭 후 제거한다.
그리고 push를 진행하기전에 다음과 같이 진행
// 작업 디렉토리 상의 변경 내용을 스테이징 영역에 추가 (커밋전의 변경분을 모아둔다.)
git add [파일/디렉토리 경로]
나는 현재 디렉토리의 모든 변경내용을 스테이징 영역에 추가하고 싶어 다음과 같이 진행
git add .
// 작업 디렉토리와 스테이징 상태를 확인, 이 때 내가 추가하거나 수정하는 파일 목록을 확인할 수 있다.
git status
// commit
git commit -m "커밋 메시지 입력"
//push
git push origin main --force
그리고 commit후 push를 진행
github Login 창이 나왔다. 이 때 Personal Access Token으로 할지 브라우저로 할지 (Sign in with your browser) 뜨는데
나는 Token으로 하였고 push가 정상적으로 진행되었다.
처음부터 계정을 제대로 하고 진행했으면 바로 되었을까
근데 또 꼬여서 안되었을 것 같다.
계정 잘 맞추고 git 히스토리를 지우고 깔끔하게 pull 받아서 push하는게 답이었을 것 같다.
반나절을 이것저것 찾아보고 진행하느라 캡쳐는 없었으나 나름 답을 찾기위해 고군분투했다.
3. 참고
https://shortcuts.tistory.com/25
https://hubring.tistory.com/38
'직접 해보기' 카테고리의 다른 글
[Nexus] To change the Java version for Nexus Repository Manager (not the system JDK) (0) | 2024.06.05 |
---|---|
[eclipse] 이클릭스 플러그인 수동설치 (0) | 2023.07.28 |
[개발환경] Using Docker Tooling in Eclipse (0) | 2022.01.18 |
Eclipse에 디컴파일러(Decompiler) 설치하기 (0) | 2020.08.11 |