[git] repo지정 O, git pull .했음에도 불구하고 tree is clean일 때 해결책

2019. 8. 29. 22:38Programming/JavaScript

깃헙 레포도 지정되었고, pull 도 했는데 git tree is clean일때

협업 프로젝트 시작 시,

처음에 git pull .로 가져왔는데도 불구하고 뭔가 못찾는 일이 있었다.

 


# 문제점

tree is clean


와 같은 문제가 생겼음
1. 프로젝트 폴더와 로컬 폴더가 동일한 폴더가 되지 않았음
2. .gitignore 파일이 상위-차상위 폴더 총 2개가 생성되었고, .gradle 이외 폴더가 인식이 안되고있었음(자동으로 올라가져있는폴더 다수, .DS_store 포함)

 


# 내가알던대로라면

0. 지양하여야 할 방법, `git push —set-upstream origin +master` 으로 강제 push + murge
1. 우선 `git pull .` → 확인하고 또 tree clean 나와서 .gitignore 삭제할것 삭제
2. 파일을 띄어쓰기를 하나씩 한 후에 다시 저장 → modified 되어있으면 정상
3. 그다음 `git add . git commit -a git state` 후 확인하면, modoified 되어있는 상태 확인 가능
4. `git push —set-upstream origin master` 하면 원래 바로 입력할수있는 란 뜨고, push가 완료되어야함





# 해결책

git pull origin BRANCHNAME —allow-unrelated-histories




# 해결책 찾은 방법(문제를 즉각적으로 해결하기 위한 활동 내용)

문제의 오류 코드를 구글에 그대로 검색
Updates were rejected because the remote contains work that you do hint: not have locally. This is usually caused by another repository pushing hint: to the same ref. You may want to first integrate the remote changes hint: (e.g., ‘git pull …’) before pushing again.

 

 


# 현상의 발생 원인

**#READ ME.md 와 내 프로젝트는 전혀 접점이 없다고 판단하여 오류가 생겼던것임.**
새 github repo를 README파일과 함께 생성해서, 바로 push가 안되는것이다.
깃에서는 서로 꼬이지 않게 하기 위해서 병합하지 않아도, 새로 변경내용을 가져오지 않으면 안된다.


정리하면, 

git pull origin BRANCHNAME —allow-unrelated-histories

→ 이미 존재하는 두 project의 history를 저장하는 드문 상황에 사용됨.
깃에서는 서로 관련기록이 없는 이질적인 두 프로젝트를 병합할 때 기본적으로 거부하는데, 이것을 허용해주는 명령어.
→ 이 경우에는 READ ME와 내 프로젝트는 전혀 접점이 없다고 판단하여 오류가 생겼던것임.

 

 

 

# 동일한 문제 재발을 막기 위해

이런 문제점은, `postmotem(포스트모템) ! 즉, 문서화의 과정을 통하여 원인을 살펴본다고 한다. 작성하여 두고두고 곱씹을것..

 

 

 

# 배운점

많이 쓸수록 내것이 된다는것을 또한번 느끼게 되었다. 끊임없는 공부만이 시간도 줄이고, 나를 더 효율적으로 만드는 방법같다. 차근차근히 원인을 분석해나가며 해결방법을 쳐내가는것. 그것이 이번 문제해결의 조금은 빠른 방법이었던 것 같다.

효율적인 삽질을, 그리고 그 횟수를 점점 줄여나가자