Tools/Git&GitHub 2019. 2. 16. 13:00

Github - eclipse(이클립스)와 local repository(로컬레포지토리) 연동



이번 포스팅은 간단하게 이클립스와 로컬 레포지토리 연동입니다. 간단하게 flow를 설명하면,


Remote Repository(Github) <-> Local Repository <-> Eclipse(이클립스) 입니다.


혹시나 git에 대한 사전 지식이 없으시다면 이전 포스팅 글을 한번 읽고 와주세요!.

▶︎▶︎▶︎GitHub - 간단한 Git사용법

▶︎▶︎▶︎GitHub - Git 사용법 2



첫번째 작업은 원격 레포지토리 생성과 로컬 레포지토리 생성 및 연결입니다. 해당 설명은

위의 포스팅에서 참조하시길 바랍니다.




이클립스 & Git(로컬 레포지토리) 연동




로컬 레포지토리와 연동할 프로젝트를 우클릭한 후 Team > Share Project를 클릭해줍니다.




Git을 선택한 후에 Next를 클릭해줍니다.





생성한 로컬레포지토리의 상위 폴더를 선택해줍니다.(mkdir한 디렉토리 경로)



끝입니다! 굉장히 간단합니다. 소스를 수정하고 이클립스 내의 Show view > Git을 선택하여 

변경된 파일을 commit해주고 push해주면 로컬레포지토리에 들어가게 됩니다.


그리고 로컬 레포지토리에서 push해주면? Github에 모든 소스가 반영됩니다.



이번 포스팅을 간단히 이클립스와 로컬 레포지토리 연결입니다.
연결 후 사용하시는 기능은 이전 포스팅에서 참조하셔서 사용하면 될듯합니다.


다음 포스팅은 Git Repository를 maven 저장소로 사용하는 방법입니다.!





posted by 여성게
:
Tools/Git&GitHub 2019. 2. 12. 13:48

GitHub - Git 사용법 2 (branch, checkout, reset 등)



이전 포스팅에서는 간단한 Git 사용법에 대하여 다루어봤습니다. 이번에는 조금 더 나아가서 branch, tag, 잘못 반영된 작업을 되돌리는 작업 등 조금 더 진화된 예제를 다루어보려고합니다. 혹시 이전 포스팅을 보시지 못하셨다면 이전 포스팅을 참고하시고 오시면 좋을 듯 싶습니다. 혹시라도 대부분의 기본 명령어들이 숙지 되어있으시다면 굳이 보시지 않으셔도 됩니다.


▶︎▶︎▶︎GitHub - 간단한 Git사용법(로컬 레포지토리,원격 레포지토리)









로컬 저장소는 git이 관리하는 세그루의 나무로 구성되어 있습니다.

첫번째 나무인 작업 디렉토리(Working Directory)는 이전 포스팅에서 생성한 git 위한 로컬디렉토리입니다.

두번째 Index는 staging 역할을 합니다.("add 명령어로 파일을 관리하에 추가")

마지막 세번째 HEAD는 commit된 스냅샷, 즉 최종 확정본을 나타냅니다.




Branch 만들기 (일명 가지치기)

master라는 최종본의 형상이 있고, 무엇인가를 변경해야하는 작업이 생겨났습니다.

만약 master branch에 직접 수정을 하면? 큰일 날 수도 있겠죠.... 그렇기 때문에

새로운 Branch를 하나 따서 원하는 작업을 진행 할 수 있게 됩니다.

이제 새로운 작업을 새로운 Branch에서 진행하고 개발이 완료된다면

master 가지로 돌아와 병합을 하면 됩니다.










"git checkout -b yeoseong_branch" 라는 명령어로 새로운 Branch 하나를 생성함과 동시에
그 Branch로 스위칭 해줍니다.
"git status" 명령으로 현재 어떠한 Branch에 있는지 확인할 수 있습니다.
만약 다시 Master Branch로 돌아가고 싶다면 "git checkout master"로 돌아가시면 됩니다.
다른 Branch 역시 동일합니다.

만약 Branch를 삭제하고 싶다면 "git branch -d yeoseong_branch"로 삭제해줍니다.







이제 작업을 진행하기 위하여 수정할 소스를 다른 Branch에서 pull 해옵니다.
"git pull origin master"






새로운 파일도 생성했습니다.
이전 포스팅과 똑같은 과정입니다. "git add yeoseong_yoon.txt" 로 
git이 관리할 수 있는 파일로 만들어주고 commit 하여 HEAD에 최종본을
반영합니다.





이제는 변경하려고 pull 했던 파일을 수정합니다.

"add" 하지않은 파일은 "git status" 명령에 수정되었으니 

"add" 해라라는 상태를 보여줍니다.





만약 파일을 add 하지 않고 commit 한다면 이러한 예외문구를 만날 수 있을 겁니다.









파일을 모두 변경하고 commit까지 해놓은 상태입니다. 이제 commit된 모든 변경사항을

원격 레포지토리에 push합니다.




깃허브에 접속해보니 yeoseong_branch에 변경사항들이 모두 잘 적용이 되었습니다.




변경사항을 master Branch에 merge

이제는 변경사항이 모두 yeoseong_branch로 적용되었으니(개발완료) 

master branch에 병합하는 작업입니다.





현재 branch를 master로 스위치 해줍니다. 그리고 yeoseong_branch에 있는 변경내용과
master의 내용을 병합해줍니다.
"git merge yeoseong_branch" 명령어는 현재 Branch와 target Branch를
병합해라 라는 명령어입니다.







master에 추가된 파일과 변경된 파일이 잘 들어온것이 보입니다.
이제는 이것을 원격 레포지토리에 push 해줍니다!



와우... 깃허브에 master Branch를 보면 변경 사항이 잘 merge 된것을 볼 수 있습니다.!!!



로컬 레포지토리에서 잘못 반영되어 되돌리고싶을때(Checkout OR Reset,Fetch)



만약 commit하지 않았다면 "git checkout -- filename"으로 변경내용을 변경 전 상태(HEAD)로 되돌려줍니다.

다만, 이미 인덱스에 추가된 변경 내용과 새로 생성한 파일은 그대로 남습니다.

but add 하지않아서 index에 들어가지도 않았다면 완벽한 reset입니다.






만약 위와 같이 이미 인덱싱했고 commit까지 했다고 가정하면 



"git fetch origin" 명령어를 치고,

"git reset --hard orgin/master" 명령어로 리셋을 합니다. 그렇다면

결과를 보듯이 commit된 것이 없어졌습니다.



그렇다면 여기서

Pull & Fetch의 차이점이란 무엇인가?

Fetch : 중앙 저장소의 소스를 로컬 저장소로 가져온다!  그러나 현재 작업중인 소스들을 변경하는 Merge 작업을 하지는 않는다

즉, 변경된 소스는 버려지고 원격저장소의 소스로 업데이트가 된다.

Pull : 중앙 저장소의 소스를 로컬 저장소로 가져온다! 또한 현재 작업중인 소스들의 Merge 작업까지 통합하여 수행한다

변경된 소스 + 원격저장소 소스가 merge된다.


posted by 여성게
:
인프라/AWS 2018. 9. 7. 00:19

mac os x 에서 진행하였습니다.


*이클립스에서 help>Eclipse Marketplace 에서 svn을 검색하여 "subversive"를 install 해줍니다.


*설치가 끝난 후에 restart된 후에 Marketplace 같은 창이 떠서 svn kit을 설치하라는 창이 뜬다면 kit을 받아주고

만약 그러한 창이 뜨지 않는다면 preference>Team>SVN 에서 SVN Connector tab을 눌러줘서 설치를 해줍니다(select 창 밑에 Get ..어쩌고 떴던 기억이)


설치가 된후에 Open perspective(우측상단) 에서 svn 창을 하나 열어줍니다.

그리고 SVN Repository view 에서 새로운 connection을 생성해줍니다.


*url-> svn://server_ip를 입력한 후에 등록한 사용자 아이디와 패스워드를 입력한 후에 엔터를 탁 쳐줍니다.


이경우는 웹서버에 따로 올리지 않았을 경우. (svn protocol을 사용)



*그런데 만약 커넥션이 되지 않는다면 몇가지 경우가 있는데, 

*1) kit이 제대로 받아지지 않은 경우(필자는 여기서 애먹음) 

*2) url이 틀려서 location 에러가 뜬경우(여기서도 많이 애먹음 다른 블로그에서는 svn://server_id/projectName(사용자지정)이었는데 필자는 /projectName을 빼고 넣으니 됬음. 아마 필자가 놓치고 있는 부분이 있는듯함) 

*3)사용자 계정정보가 틀린경우



*1)번 같은 경우는 수동으로 설치하는 방법이 있습니다.


*help>new install software 에 work with tab에 밑의 url을 넣고 plug-in을 수동으로 받아줍니다.


*http://community.polarion.com/projects/subversive/download/eclipse/6.0/update-site/




기타 사용법은 추후에 업로드하도록 하겠습니다...:)

posted by 여성게
: