다음 주소에서 GitHub 계정으로 Travis CI를 가입한다.


https://travis-ci.org/


Authorize application 버튼을 누른다.


다음과 같이 xxx 계정의 Travis 프로필 (Profile)로 이동한다.


https://travis-ci.org/profile/xxx


원하는 레포지토리 (Repository)를 ON한다.


다음과 같이 .travis.yml 파일을 레포지토리 루트에 작성한다.


language: java

jdk:

  - oraclejdk8


commit하고 push하면 Travis에서 빌드가 된다.


다음과 같이 xxx 계정의 yyy 레포지토리에서 빌드 결과를 확인할 수 있다.


https://travis-ci.org/xxx/yyy


Badge를 클릭하고 Markdown을 선택하면


다음과 같이 Markdown 버전의 Badge를 얻을 수 있고 README.md에 추가할 수 있다.


[![Build Status](https://travis-ci.org/xxx/yyy.svg?branch=master)](https://travis-ci.org/xxx/yyy)


References:

http://docs.travis-ci.com/user/getting-started/

http://stackoverflow.com/questions/19810386/showing-travis-build-status-in-github-repo

저작자 표시
신고

Posted by izeye

GitHub에서 다음과 같이 커밋으로 이슈가 종료된 것을 볼 수 있다.


izeye closed this in 2612362 10 minutes ago


커밋 메시지 (Message) 안에 다음 단어와 함께 이슈 번호를 남기면


이슈가 자동으로 종료된다.


close

closes

closed

fix

fixes

fixed

resolve

resolves

resolved


가령 다음과 같이 커밋 메시지를 작성하면 된다.


Apply JaCoCo.

Resolves #1


References:

https://help.github.com/articles/closing-issues-via-commit-messages/

https://github.com/izeye/samples-java/issues/1

저작자 표시
신고

Posted by izeye

Git History에서 Merge commit을 없애기 위해 다음과 같이 rebase를 하면 된다.


git rebase -i a724d4581f936b57dd421d7fb8fed006d6c828d2


Push 시 -f 옵션을 넣지 않으면, 다음과 같은 에러에 직면한다.


 ! [rejected]        master -> master (non-fast-forward)


Reference:

http://stackoverflow.com/questions/17577409/git-remove-merge-commit-from-history

저작자 표시
신고

Posted by izeye

GitHub에서 Fork한 레포지토리를 동기화하기 위해 다음과 같이 한다.


다음과 같이 원본 레포지토리를 upstream이라는 이름으로 remote로 등록한다.


git remote add upstream https://github.com/spring-projects/spring-boot.git


다음과 같이 upstream으로부터 최신 커밋 (Commits)과 브랜치 (Branches)를 가져온다.


git fetch upstream


다음과 같이 master 브랜치로 변경한다.


git checkout master


다음과 같이 merge한다.


git merge upstream/master


다음과 같이 push한다.


git push


References:

https://help.github.com/articles/configuring-a-remote-for-a-fork/

https://help.github.com/articles/syncing-a-fork/

저작자 표시
신고

Posted by izeye

CentOS 6.5에 디폴트 설치된 Git은 1.7.1 버전이다.


2.2.0 버전으로 업그레이드하기 위해 소스로부터 설치해야만 한다.


다음과 같이 설치할 수 있다.


wget https://www.kernel.org/pub/software/scm/git/git-2.2.0.tar.gz


tar zxvf git-2.2.0.tar.gz


cd git-2.2.0


make configure


./configure --prefix=/usr


make all doc info


sudo make install install-doc install-html install-info


make all doc info 시 다음과 같은 문제들에 직면할 수 있다.


다음과 같은 문제 직면 시 


/bin/sh: line 1: asciidoc: command not found


다음과 같이 설치한다.


sudo yum install asciidoc


다음과 같은 문제 직면 시 


/bin/sh: line 1: xmlto: command not found


다음과 같이 설치한다.


sudo yum install xmlto


다음과 같은 문제 직면 시 


/bin/sh: line 1: docbook2x-texi: command not found


다음과 같이 설치한다.


sudo yum install docbook2X


sudo ln -s /usr/bin/db2x_docbook2texi /usr/bin/docbook2x-texi


References:

https://www.kernel.org/pub/software/scm/git/

http://git-scm.com/book/en/v2/Getting-Started-Installing-Git

http://stackoverflow.com/questions/897477/installing-git-on-os-x

저작자 표시
신고

Posted by izeye

HTTP(S)로 git pull 시 다음과 같은 에러에 직면할 수 있다.


error: The requested URL returned error: 401 Authorization Required while accessing https://izeye.com/test.git/info/refs


fatal: HTTP request failed


git remote -v로 다음과 같이 현재 remote 설정을 확인할 수 있다.


origin  https://izeye.com/test.git (fetch)

origin  https://izeye.com/test.git (push)


혹은 .git/config 파일에서 확인할 수 있다.


...

[remote "origin"]

        fetch = +refs/heads/*:refs/remotes/origin/*

        url = https://izeye.com/test.git

...


Git 1.7.1 버전에서 발생했는데


1.7.10 이후 버전에서는 발생하지 않는 모양이다.


안타깝게도 yum으로는 이것이 최신 버전이고 별도로 설치해야만 한다.


혹은 다음과 같이 HTTP(S) URL 내에 사용자를 지정해주면 된다.


git remote set-url origin https://johnny@izeye.com/test.git


혹은 .git/config 파일을 직접 수정할 수도 있다.


편의상 다음과 같은 스크립트를 생성해서 사용할 수도 있겠다.


function usage() {

  echo "Usage: $0 <Git username>"

  exit 1;

}


GIT_USERNAME=$1

if [ "X${GIT_USERNAME}" == "X" ]

then

  usage

fi


git remote set-url origin https://$GIT_USERNAME@izeye.com/test.git

git pull


Refereces:

http://stackoverflow.com/questions/16572286/git-pull-gives-error-401-authorization-required-while-accessing-https-git-foo

http://stackoverflow.com/questions/2432764/change-the-uri-url-for-a-remote-git-repository

https://help.github.com/articles/changing-a-remote-s-url

저작자 표시
신고

Posted by izeye

SourceTree에서 디렉토리를 Git Ignore하기 위해


디렉토리에 포함된 파일 (File)을 선택하고


우 클릭 후 Ignore...를 선택한다.


'Ignore everything beneath:'에서 Ignore할 디렉토리를 선택하고


'Add this ignore entry to:'에서 'This repository only'를 선택한다.

저작자 표시
신고

Posted by izeye

Git Ignore를 Global로 설정하기 위해


홈 디렉토리 (Home Directory)에 있는


.gitignore_global 파일 (File)에 설정하면 된다.

저작자 표시
신고

Posted by izeye

SourceTree에서 각 라인 작성자를 확인하기 위해 다음과 같이 한다.


Blame Selected...


작성자뿐만 아니라 변경했던 커밋 (Commit) 정보도 포함되어 있다.

저작자 표시
신고

Posted by izeye

Git에서 이미 커밋된 파일은 .gitignore에 추가하더라도 커밋 대상이 된다.


커밋된 파일을 삭제한다.


만약 로컬에서 파일을 삭제하고 싶지 않다면, 다음과 같이 한다.


git rm --cached -r .settings


git rm --cached .classpath


커밋 시 레파지토리 (Repository)에서는 삭제됨에 주의한다.


Reference:

http://stackoverflow.com/questions/18955149/ignore-classpath-and-project-from-git

저작자 표시
신고

Posted by izeye


티스토리 툴바