이것 저것/Record기록장 👀

git init 초기화 되돌리기 - 에러발생

김가마 2023. 2. 23. 08:36

에러가 생긴 이유?

push 안된 이유가 아마도 로컬과 원격이 동기화 되지 않았었던 것 같다.

그래서 당황한 나머지 문제점에 파악하지 않고

기억이 나는 대로 명령어들을 치기 시작하였다. pull 당기고 rebase도 하고 이건 뭐 멍청한 순간들이였다.

다음달 천천히 문제점에 대해 살펴본 다음에 stash 확인하면서

구글링하기 시작하였다!

정말 어제의 절망과 다르게 10분 이내 빠르게 해결을 하였다.

작년에 나였으면 이틀이상 하루이상 걸렸을 텐데 뿌듯했다.

I solved Error Github 3things stuff errors

  • git init 초기화 로 인해 다시 되돌리는 깃 고치기
1. git reflog 이전 커밋 내역 출력
2. git reset —merge 로 돌린다.
3. git checkout ddksff(돌리고싶은 커밋번호) 
4. 되돌리기 성공 👀
  • git reflog 로 이전 커밋 목록을 띄운다
  • 복원하고 싶은 커밋으로 checkout을 한다
  • 이미 커밋한에 checkout 상태이기 때문에 Detached HEAD 상태가 된다.
  • 복원하고 싶은 커밋에서 git branch backup 명령어로 브랜치를 만든다 backup은 예시이다.
  • backup 브랜치로 checkout 한다.
  • 복원하고 싶은 커밋 내역이 backup 브랜치에 생성 된걸 확인
  1. 먼저 git reset —merge 로 돌린다.
  2. 그리고 깃 형태 기록들이 막 뜬다 거기에 돌리고 싶은 넘버를 넣어
  3. git checkout 2odoied ← 번호를 넣어준다
  4. 그러면 내가 한 커밋들이 다시 살아난다!!!

그리고 에러 발생

git error - [파일 이름 needs merge]

error: you need to reslove your current index first

git reset -merge 해결 

Git 에러 ![rejected] main → main (fetch first) 해결 방법

  • main → main (fetch first)
  • 에러 해결 방법은
  • 상황설명 !
  • 작업을 마친 뒤 로컬에서 원격 저장소로 git push 까지 했지만
  • 에러가 뜬다면 해당 에로는 원격저장소와 현재 작업중인 로컬 저장소와 동기화 되지 않았을 때 발생하는 것이다.
  • 에러는 동기화되지 않은 상태에서 다시 push origin main 하면 데이터가 소실되기 때문에 경고해주는 것 이다.
  • 그래서 로컬에 pull해서 push 해줘야 한다!!

해결

2가지 방법이 있다.

  1. 동기화 를 위해 Pull
git pull --rebase origin main
  1. 강제 push
git push origin +main

말 그대로 강제로 push 해주는 것이다.

그러면 pull 이전에 한 변경사항을 무시하고 현재 작업 내용을강제로 push 하는 것 이다.

이런 경우는 주의 해야하는데 ⚠️

  • pull 되지 않은 변경사항은 소실 되기 때문에 주의 해야한다

fast-fowarded 빨리 감기 병합이라한다.

단순히 그냥 ‘빨리 감기”가 가능한 상화이라고 볼 수 있다

별도의 commit log없이 최신의 commit log 를 가르키게 만드는 것이다.

Git pull 에러 해결 방법 (Your local changes to the Follwing files would be overwriiten by merge)

  1. git stash 현재 디렉토리의 파일을 임시로 백업하고 깨끗한 상태로 돌린다, 버전 관리 되는 대상파일들을 임시저장 해둔다.
  • 해당 명령어를 통해 현재 staging 영역에 있는 파일의 변경 사항을 스택에 넣어 둔다.
git stash 
git pull origin master / master ou main 에서 pull 하거나 ,
git checkout 등 원격 저장소에서 내 로컬 브랜치로 변경사항 적용
git stash pop 변경 사항을 적용하고 , 스택에서 제거한다.
git stash && git pull origin master && git stash pop
ㄴ-> 이렇게 한번에실행 가능하다.