main에서 dev (branch)를 만들고
dev branch에서 또 자기 개인의 dev_userName (branch)를 만들어서
개발하던 미니프로젝트가 막바지에 도달해서 모두가 동의하고
main에 dev를 올릴려는 순간 오류가 났다.
순간 2명이 동시에 git_main에 push를 하려고 했던 것이다.
다른 branch면 아몰라하고 push를 했겠지만 main에서 오류가 발생하니 당황했다.
먼저, 오류를 버리기 위해 changes에 들어갔더니 changes에 값이 없는게 아닌가, fetch 버튼에는 push나 pull과는 다른 모습이 되어있었고 당황한 나머지 convert commit을 했더니 또 오류가 났다.
몇 시간 같은 몇 분이 지났을 때, 변경사항이 빈 파일을 지우는 것 뿐이기도 하고 팀원분들이 올릴려는 프로젝트를 가지고 있었기에 fetch 버튼쪽의 push나 pull과는 다른 모습의 버튼을 누르고 나서야 원인을 알 수 있었다.
동시에 올려버린 프로젝트, 그렇다.
나는 main을 pull을 우선적으로 해야 main에 접근 할 수 있었던 것이다.
그러다 보니 changes에 값이 없었던 것 이다. (접근을 못하는데 변경들이 대수냐)
오류가 발생한 것도 사실이기에, 우선 main의 변경점들을 pull하고 나서야 나는 내 오류들을 버릴 수 있었다.
무엇이든 순서가 중요한 것이다.
Git에 올릴 때는 다른 사람이 해당 브랜치를 이용중인지, 업로드 중인지 파악하는 것은 매우 중요하다.
우선 git의 해당프로젝트의 settings에 들어간다.
그럼 맨 아래의 Danger Zone의 첫번째에 change repository visibility가 있는데, 클릭을 하면 여러가지 경고와 함께 바꿀 것이냐는 창이 뜬다.
(아무튼 모두가 볼 수 있다는 경고)
전부 확인을 누르면 간단하게 git의 visibility를 변경해 줄 수 있다.
github desktop에서 우선적으로 repository를 생성하는 경우
처음에 repository를 만들고 해당 파일에다가 unity project를 만들어서 저장하려고 하니 너무 큰 사이즈의 파일이라면서 오류가 발생했다.
그래서 잘 작동하고 있는 팀 프로젝트와 무엇이 차이나는지 살펴보니 gitignore와 gitattributes의 위치가 달랐다.
Git_test라는 repository를 만들고 해당 위치에 test라는 프로젝트를 만들다 보니 gitignore와 gitattributes의 위치가 프로젝트 파일 외부에 있었다. 그러다보니 오류가 발생한 것 같다. 두 파일의 위치를 프로젝트 파일 내부로 이동시켜주니 commit도 잘 되고 연동도 성공했다.
프로젝트를 만들고 바로 github 연동하기
처음에는 프로젝트를 만들고 해당 프로젝트 안에다가 Git repository를 만들었다. 그랬더니 프로젝트를 변경해도 github desktop에는 아무런 변화가 없었다. 1. 에서 그랫듯이 gitignore와 gitattributes의 위치에 문제가 있는 것 같았다. 그렇다고 그 상위폴더에 만들자니 프로젝트들이 모여있는 곳이라 작동이 안될 것 같았다.
그렇게 3번의 unity프로젝트까지 제거와 제작을 하다보니 git repository가 바로 연동되었다.
해답은 프로젝트의 이름과 git repository의 이름을 같게하고 프로젝트보다 상위폴더에 만드는 것이었다. (둘이 합쳐질 수 있게)
프로젝트 이름과 git repository의 이름을 같게 만들면 우리가 원하는대로 프로젝트 내부에 바로 gitignore와 gitattributes이 생성되어서 바로 연동이 가능하다.
(프로젝트에 연동 시 파일안에 생성되기 때문에 원하는 수행을 하지 못함)
+) 그리고 마치 스크립트를 저장해야 프로젝트에 변경사항이 적용되듯 프로젝트를 저장해야지만 변경사항이 github desktop에 전해진다.
무수히 많은 comiit과 push,pull 사이에서 특정 상태로 이동하고 싶다면 이동하고 싶은 branch를 우클릭 하고
*** create branch from commit
을 누르고 해당 상태를 가져올 branch의 이름을 정해주면
새로운 branch가 생성되고 원하는 시점에서 자유롭게 수정, 개발 할 수 있다.
알면 알수록 git의 기능은 신기하고 유용한 것 같다.