전체 글(363)
-
Git - fast-forward merge 란? fast-forward & 3-way Merge의 차이점
1. fast-forward merge 아래와 같은 상황이 있다고 가정하자. issue 처리를 위해 master 브랜치에서 브랜치를 따서 작업을 하고 있었다. 갑자기 픽스해서 빠르게 릴리즈해야할 버그 사항이 있어 hotfix 브랜치를 master 기준으로 따서 작업을 했다. 버그를 픽스하고 테스트를 통과해 이제 릴리스 해야하는 상황이다. 이제 master에 hotfix를 머지해야되는 상황이다. 그런데 hotfix는 master를 베이스로 하고 있는 브랜치, 즉 master의 upstream 브랜치이다. 이제 머지를 하면 fast-forward 머지가 되는 것인데, 이것은 단순히 master가 바라보고 있는 커밋을 앞으로 이동하는 것(hotfix 브랜치가 가르키는 커밋을 master가 바라본다.) 뿐이다...
2020.03.27 -
Git - 자주 사용되거나 유용한 Git 명령들
이번 포스팅은 내용설명은 거의 없이 진행할 것이다. 포스팅 내용은 Git에서 자주 사용되거나 유용한 Git 명령들이다. git commit --amend : 완료된 커밋을 수정하고 싶을때나, 변경된 내용을 이미 커밋된 내용에 다시 포함시키고 싶을 때 사용하는 명령이다. "A"라는 커밋을 찍었는데, push 전에 내용이 변경되어 staging에 변경사항이 있는데, 이 변경된 staging 내용을 "A"라는 커밋에 포함시키고 싶을 때 사용한다. 즉, staging 변경사항이 없으면 "A"라는 커밋 내용과 동일하고 커밋메시지만 수정한다. git reset HEAD : 이미 staging에 올라간 파일을 unstaging으로 바꾸고 싶을때 사용한다. 이 말은 git add한 파일을 되돌리는 것이다. fileNa..
2020.03.27 -
Jenkins - Jenkins Multibranch pipeline(멀티브랜치 파이프라인)을 이용하여 Docker image build & push 하는 방법
오늘 다루어볼 포스팅은 Git과 Jenkins를 연동한 이후에 Jenkins Mulibranch pipeline으로 springboot web project를 docker image로 빌드 후 push하는 것까지 다루어볼 것이다. 이전까지는 오늘 다루어볼 포스팅의 연습 및 준비단계였고 본격적으로 CI/CD에 대해 다루어본다. 물론 오늘 다루어볼 포스팅 내용이 실무에서 그대로 활용하기 애매할 수는 있지만 포스팅을 이어나가면서 좀 더 보완해나갈 것이다. 1. Git & Jenkins 연동 후 Multibranch pipeline 작성 Jenkins - CentOS에 docker 환경으로 Jenkins 설치(Jenkins&GitHub CI) 오늘 다루어볼 내용은 CI의 핵심 젠킨스(Jenkins)를 다루어볼 ..
2020.03.27 -
Git - .gitignore가 작동하지 않을때(.gitignore가 안먹을때)
이번 포스팅은 굉장히 짧은 포스팅이 될것이다. 포스팅 내용은 ".gitignore" 파일이 먹지않을 때, 해결 방법이다. 분명 .gitignore에 파일 확장자 등을 추가하였는데 계속해서 changes에 나온다면 git의 캐시가 문제가 되는지 확인 해볼 필요가 있다. 아래 명령을 통해 캐시를 삭제해보자. > git rm -r --cached > git add . > git commit -m "clean untracked files" 아마 캐시 되었었던 파일들이 쫙 deleted된걸로 나오고 일부 파일들은 untracked로 나올 것이다. 최종적으로 한번 커밋해주자 !
2020.03.26 -
Jenkins - Jenkins dood(docker out of docker)로 실행시켜 agent docker 사용하기
아마 이번 포스팅부터 Jenkins(젠킨스)에서 정말 쓸모 있는 부분을 다룰 것 같다. 젠킨스 파이프라인을 다루기 전에 Jenkins 안에서 dood(docker out of docker)로 docker agent를 실행하는 방법에 대해 다루어 볼 것이다. 실제로 많이 사용하는 유즈케이스이기도 하다. 그 이유는 필요한 라이브러리를 직접 설치하거나 하지 않고 Jenkins pipeline 스크립트 안에서 docker agent를 이용해 설치하면 별도로 의존성있는 라이브러리를 직접 설치하지 않아도 되고, 또한 Jenkins에서 Docker image를 빌드할때도 필요하다. 즉, 요즘 같이 도커가 대중화되있는 시대에는 거의 필수이지 않을까 싶다.(더 좋은 방법이 있다면 댓글로 알려주시면 감사하겠다.) 우리가 ..
2020.03.26 -
Jenkins - Jenkins pipeline Slack notification(젠킨스 빌드 슬랙 알림)
오늘 다루어볼 포스팅은 간단하게 젠킨스의 빌드 시작과 성공/실패에 대한 알림을 슬랙으로 받는 방법이다. 간단해서 아주 짧은 포스팅이 될 것 같다. 1. Slack Jenkins CI app install 예제는 이미 슬랙이 설치되어있고 계정이 있다는 가정에서 진행한다. 채널을 하나 생성해준 후 밑의 Apps 버튼을 누른다. 젠킨스(Jenkins)로 검색하여 다운로드 한다. 알림받을 채널을 입력한다. 진행하다보면 슬랙의 Team Subdomain과 인증 token을 받을 수 있다. 이러한 데이터를 이용하여 Jenkins에서 Slack과의 연동 설정을 할것이다. 젠킨스 설정에서 이제 슬랙과 연동을 할 것이다. 플러그인 관리에서 Slack Notification plugin을 install 해준다. 이제 Je..
2020.03.22