[ Java ] 이클립스와 git깃 연동하기(이미 있는 local폴더의 내용 git에 push하기, git에서 pull하기)
in BackEnd
이클립스와 git을 연동하는 법에 대한 블로그글이 수백수천개인데 하여튼간 정확히 원하는 내용은 없었고
암만 삽질을 해도 2주만 지나면 다 까먹는 망각의 동물이라 이렇게 나를 위해서 글을 남긴다… (/TДT)/
더 좋은 기능이 있을지도 모르지만.. 내가 삽질해서 알아낸 내용은 여기까지다…..흐규흐규
우선은 이클립스에 git을 설치해야하는데, 그건 다른 글에도 나와있으니 그걸 참조하면 되겠다
git을 설치하고나면 이클립스에서 Git Repoisitories라고 생기는데 거기에 아무것도 연동된게 없으면
세가지 옵션이 뜬다.
- Add an existing local Git Repository ~
- Clone a Git Repository~
- Create a new Git Repository~
이렇게 3가지의 옵션이 뜨는데, 보면 알듯이
1번은 이미 존재하는 깃레포를 이클립스와 연동시키겠다는 말이고
2번은 깃레포를 복사하겠다는 말이며,
3번은 새로운 깃레포를 생성하겠다는 말이다.
여기서 말하는 git 레포가 무엇인지 명확하게 해야한다.
git 레포는 git이 존재하는 폴더를 말하는건데(우선 레포지토리 자체가 저장소를 뜻하는거니까)
숨긴파일로 .git이 들어있다.
이 .git이 있어야만 이클립스에서 git 레포로 인식한다(당연한말)
사람들이 많이 말하는 git을 연동하는 방법은 clone을 한뒤(git과 이클립스는 연동됨) java project에 들어가면 내가 작업을 연결해놓은 프로젝트(current location)가 target location으로 가버린다는 것이다.
그럼 실제적으로 내가 매일 작업하는 F:에서는 작업코드가 사라지고.. 이클립스가 설정해준 디폴트 디렉토리로 파일들이 다 이동되어버린다는것…….(゚ △ ゚;)
도대체 왜 그런거죠 전 그냥 그자리에서 코딩하고싶은데요….
혹시나 아시는분 댓글좀 달아주세요…. 흑흑
여튼 그래서 나는 연동된 파일을 java project에서 team-share project로 안했다.
지금부터 잘 보면 됌
1번 경우의 수. 내가 이미 작업하던 코드를 Git서버에 push하는 법
우선 Git Repositories에서 Create a new Git레포 를 누른다.
(현재 내 로컬에서는 깃레포가 없기때문에 깃레포를 만들어주어야한다. 앞으로 이 깃레포에서 작업할거임. 그러니까 작업할곳에다가 원하는 이름으로 새로 만들어주면 됨)
그리고 새폴더만들듯이 폴더를 만들어주면 된다.
그러면 그냥 그 폴더는 git repo가 된거다. 그 안에 .git이 생겼으니까!
이렇게 만들어주면 Git repositories에는 새로운 git 폴더가 생성된다
그리고 내가 원래 작업하던, 그러니까 git이 아닌 폴더, 그 안의 내용들을 복사해서 git repo에다가 붙여넣기 한다.
그럼 git 레포에 내가 원래 작업하던 코드들이 다 들어오게 된다.
그럼 우선 이클립스에 Git Repository랑은 연결이 된거고,
이제 java project에서 연결해주어야한다.
원래 java project와 연결되어있는 디렉토리는 당연히 git 레포가 아닐것이다. 그리고 우린 어짜피 폴더를 바꿨으니까 얘네들은 필요없는 폴더라 삭제한다.
삭제하고 새롭게 java project를 만들어준다.
이때 java project에서 디렉토리 연결할떄 디폴트가 아니고 아까 만들어준 그 깃레포와 연결해주면
java project에서도 .git이 들어있는 폴더와 연결된거라 자동으로 연결된다.
그리고 Git staging에 들어가서보면 새롭게 추가된 파일
(깃스테이징이 안보이면[window]-[show view-[other]-[Git]-[Git staging]을 선택하면 콘솔옆에 뜬다)
(원론적으로는 모든 파일이다. 원래 작업하던 파일에서 git파일로 옮긴 모든 파일들)이 뜰거다.
거기서 원하는 것들만 스테이지로 올려도 되고, java project에서 team-Add to Index 눌러도 되고, 둘다 스테이지로 올리는 작업이다.
스테이지로 올린뒤 commit메세지를 적고(안적으면 안올라감) commit & push를 하면 어느 원격저장소로 올릴건지 물어본다.
그때 내가 올리려는 깃서버주소를 붙여넣으면 알아서 자동으로 써지고 (밑에 당근 깃헙계정은 입력해야한다) push를 하게 되는데, 만약 깃서버에 다른 내용이 있다면 force어쩌고저쩌고 라고 적혀있는 곳에 체크박스를 체크해주어야한다.
그러면 깃서버에 내용이 있던 없던 다 덮어쓰기 해버린다.
그렇게 푸시를 해주면 잘 올라간다.
(근데 그러고 나서 다음번 푸시를 해주려고하면 fast-forward라면서 에러가 날텐데, 그 이유는 내가 처음에 force로 overwrite한 내용을 pull을 해오지 않기 때문이다. 그러기 때문에 강제로 overwirte를 해주면 깃서버에있는것을 pull을 한번해주어야한다. 그래야 동일한 위치에 있게 되기 때문이다)
2번 경우의수. 깃서버에서 clone해오기
두번째의 clone을 누르면,
Source Git Repository라면서 창이 뜬다.
그 창의 URI에다가 연결을 원하는 git의 주소를 복사하면 알아서 host와 repoitory path를 잡아준다.
next눌러서 branch selection해주고,
내 로컬 어디에다가 저장할것인지 물어본다.
그리고 finish를 누르면 Git Repositories에 새로운 레포가 생기면서 연결이 된다.
이클립스 우하귀를 보면 현재 복사중인 %가 나온다. 100%이 될때까지 기다리자.
기다리면 내가 지정했던 폴더에 복사된 코드들이 쫘라락 나온다
다운이 끝나면 이제 java project에서 내가 작업할 project와 방금 다운받은 폴더를 연결을 해주어야한다.
[new]-[java project]를 눌러서 디폴트말고 아까 다운받았던 폴더랑 연결시켜준다.
그럼 끝!!
하 진짜 git은 다좋은데 사진올리는거 너무 귀찮음…………….
나보라고하는건데 노력이 너무 지나쳐…. 몹쓸기억력…╰(◣﹏◢)╯