git12 Git stash 기능 feature 브랜치에서 작업을 진행하고 있는 중 다른 작업 요청이 와서 다른 브랜치로 checkout을 했는데 작업했던 소스가 보이는 현상이 발생했다. 내가 원했던 것은 새로운 브랜치로 변경을 하게 되면 기존 작업했던 소스 변경 및 새로 추가된 파일이 보이지 않는 것이였다. 이를 해결하기 위한 방법으로는 작업했던 소스들을 local repository에 커밋한 후 브랜치 변경을 하면 작업했던 소스들이 보이지 않게 할 수 있다. 하지만 완성되지 않은 코드를 커밋하는 것은 안 좋은 방법이기 때문에 이 방법은 그닥 추천하지 않는다. 이런 경우 Git에서는 어떠한 방법으로 가이드 하고 있는지 찾아보니 stash 라는 기능이 있다는 것을 알게 되었고, 다음과 같은 작업 절차를 이용하면 내가 원하는 상태에서 개발.. 2014. 7. 28. SourceTree merge tool 변경 git을 이용하다 보면 충돌이 발생되는 경우가 많은데 SourceTree에서 제공하는 default 머지 툴은 사용하기가 불편하다.자신이 선호하는 merge tool이 있는 경우 이를 변경할 수 있는데 Tools > Diff 탭 이동 후 Merge Tool을 선택하면 된다. (난 P4Merge 툴을 사용) 위와 같이 SourceTree에서 설정을 완료하게 되면 다음의 .gitconfig 파일에 설정 정보가 추가되어 있는 것을 확인할 수 있다. .gitconfig 파일[mergetool "sourcetree"]cmd = 'C:/Program Files/Perforce/p4merge.exe' \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\"trustExitCode = true .. 2014. 2. 22. SourceTree Commit mode default 설정 변경 SourceTree를 사용하면서 local repository에 commit을 할 때 항상 Staged 영역에 변경된 소스를 추가한 후 commit을 해주곤 했다.헌데, 이런 반복적인 작업이 여간 귀찮은게 아니다. 이때 사용할 수 있는 방법이 Commit mode를 Seleted files로 변경하여 바로 commit을 날리는 것이다. 헌데, 매번 commit mode를 Seleted files로 변경해 주는 것 또한 귀찮다.default 설정을 바꾸는 곳이 분명 있을 거라 생각되어 찾아보니 역시나 존재했다.Tools > Options > Git 탭 이동"Use the staging area" 체크 박스 해제 2014. 2. 15. Git Fetch와 Merge 비교 Git을 이용하여 개발을 하였을 경우 원격 저장소의 소스를 내 로컬 저장소에 merge하기 위해서는 pull을 받게 된다.pull을 하게 되면 원격 저장소의 소스를 로컬 저장소로 가져온 후, Merge 작업을 자동으로 수행한다.여기서 원격 저장소의 소스를 로컬 저장소로 가져오는 작업을 Fetch라고 한다.즉, pull을 하게 되면 fetch를 한 후 merge 작업까지 자동으로 실행해 주는 것이다. 그럼 pull을 받았을 때 충돌이 발생하면 어떻게 해야 하는 걸까?이런 경우는 우선 fetch를 받은 후 개발자가 수동으로 merge 작업을 진행해 줘야 한다. 이클립스 EGit을 사용할 때 한 가지 알아야 할 것이 있는데 Egit 플러그인에서는 synchronize workspace 실행 전 fetch를 자.. 2014. 1. 29. eclipse EGit 시나리오별 사용법 git에 대한 개념적인 설명보다는 실무에서 무리 없이 사용할 수 있는 범위로 상황별 시나리오를 작성한다.각각의 시나리오는 A, B 개발자가 Git을 함께 쓰는 것을 예로 든다. 1. 개발자A 새로운 파일 생성 후 로컬 리포지토리에 commit이클립스에서 newFile1.txt 파일을 새로 생성하게 되면 해당 파일은 Untracked file의 상태를 가진다.Untracked file의 의미는 Git에서 관리대상에 포함되지 않는 다는 의미이다.이제 파일을 로컬 리포지토리에 commit해보자.프로젝트를 클릭 한 후 team > Synchronize 를 실행하면 newFile1.txt 파일이 목록에 보이게 된다.이제 해당 파일 commit을 해보려고 하면 commit을 할 수 없다. 커밋 버튼이 비활성화 되어.. 2014. 1. 18. Git Configuration 프로젝트별 사용자 정보 셋팅 분산버전관리 시스템인 Git을 사용하여 commit을 하게 되면 Configuration에 설정한 user.email 값과 user.name 값이 커밋된 snapshopt 정보에 기록된다. 만약 두 개의 프로젝트를 동시에 진행하고 있고, git 저장소가 다른 상황에서 user.email, user.name 정보를 다르게 하여 commit하기 위해서는 어떻게 해야 할까? 방법은 이클립스의 Team > Git > Configuration 에서 콘트롤 할 수 있다. mavenMultiModule 프로젝트에서 사용하는 email, name은 다음과 같이 Repository Settings 탭으로 이동 후 user.email, user.name 을 등록해준다. 이와 같이 셋팅을 하게 되면 mavenMultiMod.. 2014. 1. 18. Github Web Hook 설정 jenkins를 사용하게 되면 대게 폴링을 이용하여 형상 관리 시스템의 리비전이 변경되었는지를 체크한다.만약 변경이 되어 있으면 빌드가 실행되고, 변경이 없다면 빌드가 실행되지 않는다.허나 이 방법은 매번 jenkins 시스템이 형상관리 시스템으로 불필요한 요청을 보내게 되는데 이런 문제를 해결할 수 있는 기술이 hook이다. hook의 동작 방식은 개발자가 github에 소스 코드를 push하면 github 시스템이 jenkins 시스템으로 noti를 보내게 되는 방식이며 이를 받은 jenkins 시스템은 빌드를 시작하게 된다. 다음은 설정 방법이다.1. GitHub plugin 플러그인 설치 2. Jenkins > configuration > GitHub Web Hook 이동 - Let Jenkins.. 2014. 1. 15. Jenkins + Atlassian Stash(Git) 연동 사내에서 Git을 사용하게 되어 개발 장비에 Jenkins와 Git 연동을 준비하였는데 진행 과정에서 다소 삽질이 많았던 터라 정리한다. plugin 설치Jenkins 관리 > 플러그인 관리 페이지 이동 후 Jenkins GIT plugin을 설치한다.해당 플러그인을 설치하게 되면 dependency plugin 들이 자동으로 설치가 되는데 그 대상이 되는 것은 Jenkins GIT client plugin, SCM API Plugin 이다. 시스템 설정Jenkins 관리 > 시스템 설정 관리 페이지 이동 후 JDK, Maven 등을 셋팅한다.이후, Git 정보란을 유심히 살펴봐야 하는데 Path to Git executable 항목의 git은 실행 파일명을 의미하는 것이다. 즉 서버에 git이 inst.. 2014. 1. 15. centOS에 Git 설치 Git에서 필요한 라이브러리 다운로드yum -y install zlib-devel openssl-devel cpio expat-devel gettext-devel fedora 계열은 sudo apt-get install git Git 소스 다운로드cd /usr/local/srcwget http://git-core.googlecode.com/files/git-1.7.9.tar.gztar xvzf git-1.7.9.tar.gzcd git-1.7.9 Git 소스 컴파일 및 install./configuremakemake install Git 저장소 생성mkdir git-testcd git-testgit init Initialized empty Git repository in /home/nklee/git/git.. 2014. 1. 13. Git 원격 저장소 maven multi module 프로젝트 가져오기 Git 원격 저장소의 프로젝트를 로컬로 clone 하고, 메이븐 멀티 모듈 프로젝트를 로컬 이클립스에 셋팅하는 방법에 대해서 정리해 본다. Git 원격 저장소 이클립스 workspace로 가져오기 설정1. 이클립스의 Git Repositories 뷰에서 git 저장소 추가 아이콘 클릭 - Clone a Git Repository and add the clone to this view 2. Clone Git Repository 창에 원격 저장소의 URI와 User, Password를 채워 넣은 후 Next 3. master branch 선택 후 Next - 내 프로젝트에는 develop branch도 있기 때문에 함께 체크 했음 4. Local Destination 디렉토리 선택 후 Finish - 작업 .. 2014. 1. 10. 이클립스에 EGit 플러그인 설치 후 Github 연동 EGit 플러그인 설치Help > Install New Software.. 이동Work with의 셀렉트 버튼 클릭 후 Indigo - http://download.eclipse.org/releases/indigo 선택Collaboration 메뉴 확장 후 Eclipse EGit 체크 후 설치 git 설정window > Preferences > General > Network Connections > SSH2의 key management탭에서 Generate RSA Key 생성 후 Save Private Key 클릭id_rsa 파일과 id_rsa.pub 파일이 생성이 되는데 원하는 디렉토리에 저장한다. (나는 D:\\git 디렉토리에 저장하였음)key를 만들어 주는 이유는 github과 연동 시 http.. 2013. 8. 26. 이클립스 egit 에서 remote push 인증 문제 이클립스 egit을 쓰면서 항상 불편한 점이 있다. 로컬 repository에 commit 후 github에 push 할 때 인증을 위한 아이디, 패스워드를 입력해야 한다.처음 egit을 사용했을 때에는 이 문제에 대해서 그냥 입력해야 하는 구나라고 생각했는데 몇 개월이 지나 똑같은 짓을 반복적으로 하다보니 짜증이 나고, 귀찮아 졌다. 이런 귀차니즘을 벗어나고자 egit 플로그인 기능을 잘 조사해보니 아이디, 패스워드를 저장할 수 있는 방법이 있었다. Git Repositories 퍼스펙티브 뷰로 이동 후 아래와 같이 Remotes 오른쪽 마우스를 클릭한다. Remote name은 default인 origin을 그대로 놔둔 후 확인Change 버튼 클릭 후 정보 입력 위와 같이 설정하면 Team > Pu.. 2013. 1. 7. 이전 1 다음