svn을 쓰다가 git으로 넘어온 사람들을 보면 간혹 svn update와 같이 동작 하는것을 원하는 사람들이 있다.
삭제된 파일만 되돌리기를 하고 싶은경우 이다.
즉 여러개의 파일이 있을 때 수정된 파일을 제외 하고 삭제된 파일만 다시 reset 하고 싶을경우 이다.
먼저 UNDO 하는 방법을 알아보자.
1.모든 파일을 되돌릴 때
$git reset --hard HEAD
2.특정 파일만 되돌릴때
$git checkout -- file
2번을 이용하면 특정파일만 되돌릴 수 있으나 파일을 일일이 기입하는 것은 여간 귀찮은일이 아니다. 그래서 돌리고 싶은 파일만 삭제한 후 아래와 같이 입력한다.
$git ls-files -d | xargs git checkout --
파이프와 xargs를 이용한 방법으로 명령어를...
2015년 4월 22일 수요일
2015년 4월 21일 화요일
Gitlab error “fatal: The remote end hung up unexpectedly”
최초 데이터를 push 할 때
"fatal: The remote end hung up unexpectedly"가 난다면?
1.chunked boad size가 작아서 error 나는지 log를 확인 한다.
$ su -
$ vi /var/opt/gitlab/nginx/logs/gitlab_error.log
[error] 23946#0: *885 client intended to send too large chunked body: 524304336 bytes, client: xxxx, server: xxxx
2.gitlab의 nginx max body size를 변경한다.
$ vi /etc/gitlab/gitlab.rb
nginx['client_max_body_size'] = 'XXXm' // XXXmbyte
$...
git ignore 파일 쉽게 만들기
리눅스 프로젝트를 하게 되면 make시에 각종 object 파일들이 생성되거나 변경 된다. 이 때 git에 적용하지 않을려면 .gitignore 파일에 무시할 폴더나 파일을 기록 하면 되는데 폴더가 많으면 쉽지 않다. 그렇때 아래의 커맨드를 이용해보자.
1. 최초 프로젝트를 make clean 한다.
$make clean
2. 프로젝트를 git server에 push
$git add -A
$git push
3. 프로젝트를 컴파일 한다.
$make
4. git status를 하면 make시에 생성되는 파일들이 나온다.
5. make 후 생성된 모든 파일들을 .gitignore에 저장한다.
$git status --porcelain | grep '^??' | cut -c4- >>.gitignore
위의...
2015년 4월 14일 화요일
/dev/null 과 2 > &1
아래의 명령어에서 사용된 것을 하나씩 확인 해보자
backup.sh > /dev/null 2>&1
>(리다이렉션) : 표준 출력을 다음에 위치한 곳으로 우회 시킨다.
/dev/null : 모두 버려라
&j : j가 참조하고 있는곳
0:표준 입력,1:표준출력,2:표준에러
예)
$backup.sh > log.txt
backup.sh의 표준 출력을 log.txt로 보낸다.
$backup.sh 2> err.txt
backup.sh의 표준 에러를 err.txt로 보낸다.
이제 $backup.sh > /dev/null 2>&1 분석해보자.
backup.sh > /dev/null
- backup.sh의 표준 출력을 버려라.
2>&1
-...
2015년 4월 13일 월요일
주기적인 작업 crontab
crontab
설정된 시간에 따라 그 시간에 맞는 서비스를 실행 시키는 것
일반적으로 주기적으로 백업이 필요할 때 사용한다.
예약된 리스트
$crontab -l
작업 수정 및 등록
$crontab -e
작업 삭제
$crontab -r
아래의 폴더에 실행파일을 넣으면 끝
/etc/cron.hourly
/etc/cron.daily
/etc/cron.weekly
/etc/cron.monthly
정밀하게 설정하기
$su - (root 권한)
$crontab -e
분(0-59) 시(0-23) 일(0-31) 월(1-12) 요일(0,7:일요일,1:월요일,.....) 명령어
예)
*/10 1-4 1,3 5 * backup.sh > /dev/null 2>&1
*/10 : 매 10분 간격으로
1-4...
gitlab backup
#gitlab backup
$sudo gitlab-rake gitlab:backup:create
$sudo ls /var/opt/gitlab/backups
#backup 위치 변경
$sudo vi /etc/gitlab/gitlab.rb
gitlab_rails['backup_path'] = '변경될 위치'
$sudo gitlab-ctl reconfigure
# limit backup lifetime to 7 days - 604800 seconds
$sudo vi /etc/gitlab/gitlab.rb
gitlab_rails['backup_keep_time'] = 604800
$sudo gitlab-ctl reconfigure
# restoring backup
$sudo cp 1393513186_gitlab_backup.tar...
gitlab git-data 위치 변경
git-data의 위치를 A서버에서 B서버로 변경 하려면??
A 서버 = gitlab server
B 서버 = data server (gitlab이 설치되어 있지않은 data server)
1. A서버의 git 계정의 uid와gid 정보를 가져옴.(uid:999,gid:999)
2. B서버에 git 계정을 추가
$sudo adduser --uid 999 git (A서버와 uid,gid를 일치 시킴 일치 시키지 않으면 permission denied 에러에 빠져 헤어나오지 못함.)
3. B서버(data가 저장될) 설정
$sudo mkdir git-data
$sudo chown git:git git-data/
4. B서버 삼바설정
$$sudo gitlab-ctl stop
$sudo system-config-samba...
2015년 4월 12일 일요일
gitlab 서버 구축
ubuntu 14.04 버전 (64bit)
1. Install and configure the necessary dependencies
$sudo apt-get install openssh-server
$sudo apt-get install postfix
2. Download the Omnibus package and install everything
$wget https://downloads-packages.s3.amazonaws.com/ubuntu-14.04/gitlab_7.9.2-omnibus-1_amd64.deb
$sudo dpkg -i gitlab_7.9.2-omnibus-1_amd64.deb
3. Configure and start GitLab
$sudo gitlab-ctl reconfigure
4....
2015년 4월 9일 목요일
C++ 표준
연도
C++ 표준
비공식 이름
2011년
ISO/IEC
14882:2011
C++11 (c++0x)
2007년
ISO/IEC TR
19768:2007
C++TR1
2003년
ISO/IEC
14882:2003
C++03
1998년
ISO/IEC
14882:1998
C++98...
trac 서버 구축
ubuntu 14.04 기준
1.패키지 설치
$sudo apt-get install apache2
$sudo apt-get install apache2-utils
$sudo apt-get install trac libapache2-mod-python python-setuptools
$sudo apt-get install rcconf
2.apache authorization 파일 생성
최초 생성 시
$sudo htpasswd -c /etc/apache2/authorization.auth 사용자명
사용자 추가 시
$sudo htpasswd /etc/apache2/authorization.auth
사용자명
3. apache2 trac 설정
$sudo vi /etc/apache2/mods-enable/svntrac.conf
<Location...
svn 서버 구축
ubuntu 14.04 기준
1.패키지 설치
$sudo apt-get install apache2
$sudo apt-get install apache2-utils
$sudo apt-get install subversion libapache2-svn
$sudo apt-get install rcconf
2.apache authorization 파일 생성
최초 생성 시
$sudo htpasswd -c /etc/apache2/authorization.auth 사용자명
사용자 추가 시
$sudo htpasswd /etc/apache2/authorization.auth 사용자명
3. apache2 svn 설정
$sudo vi /etc/apache2/mods-enable/svntrac.conf
<Location...
svn merge

● svn merge -r 옵션과 -c 옵션
svn merge -c 130 == svn merge -r 129:130
svn merge -c -130 == svn merge -r 130:129
● merge branches -> trunk
▶ branches에서 수정된 30~34번까지의 내용을 trunk에 적용하려면?
$svn switch trunk URL : 작업사본을 trunk로 변경 (이미 trunk라면 생략)
$svn merge...
2015년 4월 7일 화요일
linux 쉘 명령어 모음
$ll : ls -l
$Pushd : 현재디렉토리저장
$Popd : 저장한 디렉토리로 이동$Dirs : 저장된 디렉토리 표시
$chgrp 그룹명 파일또는폴더 : 그룹 변경
$df : 마운트된 파일 시스템의 사용 가능한 공간 확인
$du : 디렉토리의 파일용량
$free : 현재 메모리 사용량 및 사용가능한 메모리
$w : 현재 로그인한 사용자가 무엇을 하는지 알려줌
$tty : 시스템에서 연결되어 사용하는 터미널 ...
svn url 변경
서버 저장소 주소 변경
$svn relocate
branches <-> trunk 간 주소 변경
$svn switch
- switch는 하나의 로컬작업 저장소에서 branches로 일시 전환 했다가 trunk로 전환 할때 사용 ...
svn 충돌 해결법
(e) edit - 병합된 파일을 편집기로 열기
(df) diff-full - 병합된 파일을 보기
(r) resolved - 병합된 파일을 채택하기
(dc) display-conflict - 모든 충돌 사항을 보이기(잘 병합된 부분 제외)
(mc) mine-conflict - 충돌 부분에 대하여 작업사본을 선택하기
(tc) theirs-conflict - 충돌 부분에 대하여 저장소본을 선택하기
(mf) mine-full - 충돌난 파일에 대하여 작업사본 파일을 선택하기
(tf) theirs-full - 충돌난 파일에 대하여 저장소본 파일을 선택하기
(p) postpone - 나중에 해결할 것으로 표시해두기
(l) launch - 외부...
apt-get
apt-get(Advanced Packaging Tool)은 우분투(Ubuntu)를 포함안 데비안(Debian)계열의 리눅스에서 쓰이는 패키지 관리 명령어 도구입니다.
패키지 인덱스 인덱스 정보를 업데이트 : apt-get은 인덱스를 가지고 있는데 이 인덱스는 /etc/apt/sources.list에 있습니다. 이곳에 저장된 저장소에서 사용할 패키지의 정보를 얻습니다.
$sudo apt-get update
설치된 패키지 업그레이드 : 설치되어 있는 패키지를 모두 새버전으로 업그레이드 합니다.
$sudo apt-get upgrade
의존성검사하며 설치하기
$sudo apt-get dist-upgrade
패키지 설치
$sudo apt-get install 패키지이름
패키지 재설치
$apt-get...