레이블이 Tools인 게시물을 표시합니다. 모든 게시물 표시
레이블이 Tools인 게시물을 표시합니다. 모든 게시물 표시

2016년 11월 24일 목요일

이클립스 자동 import[bnw]

이클립스 계열에서 프로그램을 작성하다 보면 임포트가 안되어 있어서
빨간줄로 떠서 보기에 안좋다.

이럴때 자동으로 임포트 해주는 단축키가

import 단축키 : Ctrl + Shift + O

이다.

이 단축키를 사용하는 방법말고
저장만으로 자동 import를 할 수 있다


메뉴에서
Window -> Preferences 의
Java -> Editor -> Save Actions 에서
Organize imports를 체크 해준다.




2016년 3월 22일 화요일

git추천 프로그램-소스트리(SourceTree) 기본[bnw]

git을 사용할때 커맨드창에서 명령어를 사용하여 모든 것을 처리할려니 불편하다.
소스트리(SourceTree)는 git을 UI로 사용할수 있어 편하다.

클론을 통해 원격 레포지토리에서 화일을 가져온 이후의
간단한 화일 수정에 대한 설명하겠다.

1. routes/index.js 화일의 내용을 수정했다.
왼쪽 Unstaged files에 수정된 화일 정보가 보이고, 오른쪽에 수정된 부분이 보인다.
-는 삭제된 것, +는 추가된 부분이다.
밑부분에 commit 메세지를 쓰는 부분이 있고,
Push changed immediately to origin/master 가 있는데
여기에 체크를 하면 커밋하자 마자 원격저장소에 푸시도 이루어진다.


2. 메세지를 입력하고 commit버튼을 누르면
Working Copy영역에서 Staged영역으로 들어가고 자동적으로 push가 이루어진다.




3.  밑에 테그 Log/History를 눌러 확인하면
모든 것이 최신을 가르키는 것을 볼 수 있다.


4. 소스를 수정하면 log에 Uncommitted changes가 발생했을 나타내는 메세지가 표시된다.


5.  화일을 선택 버튼을 눌러 Staged영역으로 보낸다.


6. Staged 영역에 있는 것을 확인할 수 있다.


7. 위의 커밋버튼을 클릭 커밋 페이지로 가서 메세지를 입력한다.
커밋만 하면 무슨 로그가 나오는지 알아보기 위해
Push changes immediately체크는 빼주었다.
그리고 Commit버튼을 클릭한다.



8. Log에서 확인해보면 내 master가 origin보다 한단계 더 진행된것을 볼수 있다.
그리고 하나의 push가 표시되어 있다.


9. 위의 push버튼을 클릭하면
다른창으로 원격 저장소의 브랜치를 선택하는 팝업창이 뜬다.


10. 원격저장소와 내 로컬이 같은 곳에 위치한 것을 볼수 있다.




















2016년 2월 22일 월요일

안드로이드 스튜디오 단축키[bnw]

Ctrl + Alt + L : 코드 자동정렬, 자동정리[메뉴:code->reformat code]
File: 파일 전체 정렬
Selected text: 선택한 부분만 정렬
All files in directory: 폴더 안 전체 파일 정렬

Ctrl + O : 오버라이드 메소드(Override Methods)[메뉴:code->Override Methods]
Ctrl + I : 임플리먼트 메소드(Implement Methods)[메뉴:code->Implement Methods]

Ctrl + Y : 줄삭제

Ctrl + D : 줄복사

Ctrl + Shift + N : 소스화일 이동, 팝업창에 이동하고 싶은 화일명 입력

Ctrl + Space : 사용할 수 있는 구문 검색
Ctrl + Shift + Space : 캐스팅 구문 자동 완성
Ctrl + Shift + Enter : 마지막에 ;을 찍는다.


안드로이드 스튜디오 디버그 단축키[bnw]

shift + F9 : 디버그 실행
F9 : 다음 중단점까지 진행
F7 : 중단점의 메소드 속으로 들어가서 진행
shift + F8 : 메소드 속에 들어갔던 진행에서 메소드를 빠져나옴
F8 : 한줄씩 실행
Alt + F9 : 커서를 원하는 라인에 놓고 누르면, 커서가 있는 곳까지 실행
하지만 중간에 중단점이 있으면 중단점까지 실행
Ctrl + Alt + F9 : 커서가 있는 위치까지 실행, 중간에 중단점이 있어도 무시
Ctrl + Shift + F8 : 모든 중단점 위치 확인
Ctrl + F2 : 디버그모드 종료. 일반 실행 모드로 전환



2016년 2월 3일 수요일

SVN 명령어 사용법[bnw]

1. 소스 받기 - checkout(co)
svn co svn_장소 저장_장소
svn co http://google.com/box (box를 현 위치에 생성하고 소스 다운받음)
svn co http://google.com/box source_dir (source_dir에 소스 다운받음)

2. 최신버전 업데이트 - update(up)
svn up

3. 작업한 소스 적용 - commit(ci) 
svn ci -m "수정부분 내용"

4. 차이점 비교 - diff
svn diff
svn diff -r 2 ( 리비전 2와 비교 )
svn diff -r 2 hello.js (리비전 2 hello.js 화일과 비교)

5. 전체화일 업로드(처음 svn을 만들때 사용) - import
svn import 소스_장소 svn_장소
svn import ./test svn://google.com/test/trunk
svn import 소스_장소 svn_장소 -m 메세지
svn import svn://google.com/test/trunk -m "svn import"

6. 화일 다운로드(체크아웃과는 다르게 순수 소스만) - export
svn export svn_장소 저장_장소
svn export svn://google.com/test/trunk test_direc
svn export svn_장소 저장_장소 -r 리비전_번호 - 해당 리비전 소스만
svn export svn://google.com/test/trunk test_direc -r 16

7. svn 버전체크 - version
svn --version

8. 변경사항 확인 - log
svn log
svn log -r 34 (리비전 34 변경사항)
svn log -r 34 test.js (리비전 34 test.js변경사항)
svn log -r 34:35 (리비전 34~35 변경사항)
svn log -v : 더 자세히

9. 새 화일 추가 - add
svn add new.js : 변경은 commit시 서버에 반영

10. 새 폴더 추가 - mkdir
svn mkdir new : 변경은 commit시 서버에 반영

11. 화일/폴더 삭제 - delete(del, rm, remove)
svn del old.js

12. 화일 이동 - move(mv)
svn mv m.js ./mv_folder

13. 화일 이름 변경 - rename(ren)
svn ren test.js change.js

14. 화일 리스트 확인 - list
svn list

15. 변경된 화일 상태 확인 - status
svn status

16. svn_url 확인 - info
svn info

17. 소스 화일 행의 수정자 확인 - blame
svn blame h.js
svn blame -r 7 h.js

18. svn 서버 변경 - switch
svn switch --relocate 이전_주소 새_주소

19. 되돌리기(커밋한 이전 작업만 되돌림, 이후에는 적용안됨) - revert
svn revert
svn revert work_dir (work_dir의 작업사항 되돌림)









2016년 1월 26일 화요일

Sublime 화면분할키 [bnw]

Alt+Shift+1    에디터 하나

Alt+Shift+2    좌우 두개 화면

Alt+Shift+3    좌우 세개 화면

Alt+Shift+4    좌우 네개 화면

Alt+Shift+8    상하 두개 화면 

Alt+Shift+9    상하 세개 화면

Alt+Shift+5    상하좌우(바둑판) 네개 화면

화면을 나눈 상태에서
ctrl + shift + <화면번호> - 선택되어진 파일을 이동한다




Shift+F11    코딩창 전체화면으로 보기

2016년 1월 14일 목요일

파일질라 - 디렉토리 목록 조회 실패(Failed to retrieve directory listing)

파일질라에서
서버에 연결은 돼는데 디렉토리 목록 조회 실패 에러가 나올때 셋팅법

영어로는 아래 메세지
Failed to retrieve directory listing

해결법
편집 -> 설정 에서
연결 -> FTP -> 능동형 으로 선택한다.

영어 버전이라면
Edit -> Settings
Connection -> FTP: Active
Connection -> FTP -> Active Mode: Select "Ask your operating system for the external IP address"
Connection -> FTP -> Passive Mode: Fall Back to Active Mode

2015년 12월 8일 화요일

구글 블로그에 화일 올리기(2) - 구글 드라이브

구글 블로그에 화일을 올리기위해서는
다른 곳에 올리고 링크를 사용해야 한다고 설명했었다.
구글 사이트를 이용한 화일 올리기는 클릭해서 확인해 보기 바란다.

이번에는 구글 드라이브를 이용한 화일 올리기이다.

1. 먼저 구글 드라이브 를 연다. 

2. 새로 만들기 를 선택하고 파일 업로드를 선택한다.




3. 파일을 업로드하고 업로드 화일을 선택,
마우스 오른쪽 버튼을 클릭하고 공유를 선택한다.




 4. 고급을 선택한다.



5. 연결을 선택한다.



6. 사용 -웹에 공개 or 사용-링크가 있는 모든 사용자 를 선택하고
저장을 눌러준다.



7. 공유할 링크를 복사하여 원하는 구글 블로그에 링크를 걸어준다.


[vi 사용법, 명령어] 환경 설정, 기타 기능

<set 및 기타>

:set nu | nonu - line번호 표시/취소
:set ai | noai - 자동 들여 쓰기/취소
:set shiftwidth=4 - 들여쓰기 폭을 4문자로 설정
:set cindent - C프로그램을 작성시 활용할 수 있는 자동 편집 기능
:set all - set 변수 보기
:set - 현재 설정된 set 상태
:syntax on | off\ - 색문자의 사용 on|off

<환경 설정>

set 등의 환경 초기 설정을 지정하여 vi 실행시에 작업 환경 홈디렉토리에 .exrc
또는 .vimrc에 사용하고자 하는 설정을 편집.

<태그 기능>

지정된 표시의 위치로 이동할 때 사용
m + a - 현재의 위치를 a위치로 표시(marking)
m + c - 현재의 위치를 c위치로 표시(marking)
' + a - a 표시된 위치로 이동
' + c - c 표시된 위치로 이동
' + ' - '를 연속 두 번 누르면 이전 작업 위치로 이동

<문자 buffer 기능>

각 문자에 대해 버퍼로 활용 가능
" + a + y5y - 문자 a에 현재 줄부터 5줄을 저장
" + a + p - 문자 a에 저장된 5줄의 내용을 붙여 넣기

<기타>

J - 현재 줄과 다음 줄을 합침
~ - 대소문자로 상호 변환
^v + m - 제어문자인 ^M문자를 현재의 위치에 삽입
.(dot) - 조금전 실행한 기능을 반복 실행
ctrl + g - 편집 중인 파일 이름과 현재 위치를 확인
ctrl + l - Refresh (화면갱신)
ctrl + 6 - 2개의 파일을 동시에 편집하고 있을 때 상호 이동

2015년 12월 6일 일요일

[Aptana Studio] Aptana Studio 한글 깨짐 해결방법

Aptana Studio 한글 깨짐 해결

소스 코드가 euc-kr로 저장되었을 시, Aptana로 열었을 때, 한글의 깨짐 현상이 발생할 수 있다.
만일 이때 editplus같은 에디터를 사용한다면 문제가 없겠지만,
Aptana는 기본적으로 utf-8로 저장하고 오픈하기 때문에 문제가 발생하는 것이다.

한글 깨짐을 해결하기 위해서는 설정을 euc-kr로 바꿔어 주어야 한다.

메뉴에서 window > preferences > general > workspace 로 이동하여
text file encoding 부분을 'euc-kr'로 직접 입력 하고,
해당 파일들을 닫고 다시 로딩하면 제대로 보인다.




2015년 12월 4일 금요일

[MySql] MySql phpMyAdmin에서 유저 추가하기

 phpMyAdmin에서 유저 추가하는 방법

1. 사용자->사용자 추가 를 선택한다.


2. 텍스트 입력 필드 로 선택하고 추가할 사용자 이름을 넣어준다.
3. Host는 로컬을 선택한다.
4. 암호를 입력해준다.
5. 암호 생성은 하지 말자.
6. 전체적 권한에서 모두 체크한다.


7. 실행을 클릭한다.


추가되었다는 메세지가 보일 것이다.


8. 데이타베이스 권한을 위해
데이타베이스를 선택하고, 원하는 데이타베이스를 선택 실행을 클릭한다.


[Sublime] Sublime EUC-KR 설정하기

EUC-KR설정하기 위해서는 먼저 패키지가 설치되어 있어야 한다.
패키지 설정법은
Sublime 패키지컨트롤러(package control) 설치
를 참조해 주기 바란다.

Ctrl + Shift + P로 패키지 팔렛트를 호출
팔렛트 창에 install을 입력하여 Package Control: Install Package 를 찾는다.
Package Control: Install Package를 선택하고,
CovertToUTF8을 찾아 설치한다.

Sublime을 재가동후,
Sublime메뉴에서 File -> Set File Encoding To -> Korean (EUC-KR)을 선택.

[XAMPP]XAMPP 아파치 작동 에러시 해결법

XAMPP를 이용하여 자신의 컴퓨터에 서버를 구축하는 경우가 많이 있다.
이때 아파치가 구동되지 않고
xampp apache error apache shutdown unexpectedly
와 같은 에러가 되는 경우가 있는데
이것은 대부분 스카이프라는 프로그램과의 충돌이 문제가 될수 있다.

아래와 같이 아파치에 문제가 발생하면



스카이프 -> 도구 -> 옵션 -> 고급 -> 연결을 선택하고
추가로 들어오는 연결에 80및 443포트 사용의 체크를 제거한다.



저장하고 스카이프를 완전히 종료해주면 아파치를 정상적으로 구동할 수 있다.



2015년 12월 3일 목요일

[vi 사용법, 명령어] vi 검색, 치환

<검색>

:s/hello - hello 탐색
/hello - hello 라는 문자를 현재의 위치에서 탐색
?hello - hello 라는 문자를 현재의 위치에서 역으로 탐색
n - 한번 탐색한 문자열을 연속적으로 탐색
N - 한번 탐색한 문자열을 역으로 연속적으로 탐색

<문자 치환> n은 숫자를 의미

rc - 현재 문자를 c로 치환
R - 현재 커서부터 Esc 문자가 입력될 때까지 치환
s - 현재문자를 삭제하고 입력모드로 전환
ns - 현재부터 n문자를 삭제하고 입력모드로 전환
S - 현재줄을 삭제하고 입력모드로 전환

<단어 치환> n은 숫자를 의미

cw - 한 단어를 치환하고 입력 모드로 전환
ncw - 현재부터 n단어를 삭제하고 입력 모드로 전환
cc - 현재 줄을 삭제하고 입력모드로 전환
ncc - 현재 줄부터 n줄을 삭제하고 입력모드로 전환
C - 현재 커서부터 줄 끝까지의 내용을 삭제하고 입력 모드로 전환
nC - 현재 커서부터 n줄까지 내용을 삭제하고 입력 모드로 전환

[vi 사용법, 명령어] vi 커서 이동

밑에 표시중
^은 Control Key를 의미하고,
n은 숫자를 의미한다.

- 커서의 이동은 명령 모드에서 가능하다.
한글자 이동 - h(왼쪽으로 한 글자 이동) l(오른쪽으로 한 글자 이동)
한 행 이동 - j(아래로 한 행 이동) k(위로 한 행 이동)
한 화면 이동 - ^f/^b: 한 화면 아래/위로 이동(forward/backward)
반 화면 이동 - ^d/^u : 반 화면 아래/위로 이동(down/up)
한 단어 이동 - w,W(한 단어 앞으로 이동), b, B(한단어 뒤로 이동),e(단어의 끝으로)
행 지정 이동 - nG(지정한 행으로 커서를 이동)

G - 파일의 맨 끝으로 이동
nG - n번째 줄로 이동
:n - n번째 줄로 이동
(, n( - 현재 문장의 선두(위의 n번째 선두)로 이동
), n) - 다음 문장의 선두(아래의 n번째 선두)로 이동
{, n{ - 현재 문단의 선두(위의 n번째 선두)로 이동
}, n} - 다음 문단의 선두(아래의 n번째 선두)로 이동
[ + [ - 이전 블록({})의 처음으로 이동
] + ] - 다음 블록({})의 처음으로 이동
^ (6) - 커서가 위치한 줄에서 맨앞으로 이동(빈칸무시)
O(숫자) - 커서가 위치한 줄에서 맨앞으로 이동(공백을 제외한 맨앞)
$ - 커서가 위치한 줄에서 맨뒤로 이동
H | M | L - 화면상에서 커서를 처음/중간/마지막 줄로 이동

2015년 12월 2일 수요일

[vi 사용법, 명령어] vi모드 전환 및 편집

모드전환

명령모드 -> 입력모드 : a, A, i, I, o, O
입력모드 -> 명령모드 : Esc Key
텍스트를 편집하기 위해선 먼저 입력 모드로 변경.
아래는 편집을 위해 명령모드에서 사용할 수 있는 명령어이다.
d : delete 삭제
c : change 변경
y : yang 복사
p : paste 붙이기
w : word 단어
u : undo 취소
^ : 줄의 시작
$ : 줄의 끝

<텍스트의 추가 및 삽입>

i (insert) - 현재 커서가 있는 위치에 새로운 텍스트를 끼워 넣는 기능
I (insert) - 현재 줄의 처음부터 새로운 텍스트를 끼워 넣는 기능
a (append) - 현재 커서가 있는 위치 다음부터 입력하는 기능
A (append) - 현재 줄의 끝에 텍스트 입력하는 기능
o (open) - 현재 커서가 있는 다음 줄에 행을 삽입하여 편집
O (open) - 현재 커서가 있는 앞줄에 행을 삽입하여 편집

<문자 복사 및 삭제와 복구>

x - 한번에 커서 뒤의 한 글자를 삭제
X - 한번에 커서 앞의 한 글자를 삭제
숫자1, 숫자2d - 파일의 숫자 1행에서 숫자 2행까지 삭제
dd - 한 라인을 삭제하고 그 내용을 버퍼에 저장
ndd - 현재 line부터 n개의 line을 지우고 그 내용을 버퍼에 저장
dw - 한 단어를 삭제
D - 현재 커서의 위치에서 그 행의 끝까지 삭제
u - 마지막에 실행한 명령을 취소하고 명령 실행 이전으로 복구
U - u에 의해 취소된 명령 재실행
^r - u에 의해 연속적으로 취소된 명령을 연속적으로 재실행
nY - 다음 줄부터 n줄을 버퍼에 복사
yw - 한 단어 복사
y$ - 커서 위치에서 그 줄 끝까지 복사
yO - 커서 위치에서 그 줄 처음까지 복사
yG - 커서 위치에서 문서의 끝까지 복사
:n1,n2 y - n1번 line에서 n2번 line까지를 버퍼에 저장
p | P - 버퍼의 내용을 현재 line 뒤/앞에 붙인다
:n1,n2 t n3 - n1번 line에서 n2번 line까지를 n3번째 line 뒤에 복사
:n1,n2 m n3 - n1번 line에서 n2번 line까지를 n3번째 line 뒤에 이동

2015년 11월 29일 일요일

[vi 사용법, 명령어] vi 시작, 종료

vi  filename - vi를 시작하여 지정한 파일 편집
vi file1 file2 ... - 여러개의 파일을 동시에 편집(... 은 다른 파일명)
vi -r filename - 비정상적인 vi 모드의 종료 등에 의한 편집파일 복구모드에서 작업

<vi 종료 및 파일 생성>

:q - 수정하지 않았을 경우 종료하기
:q! - 수정한 것을 저장하지 않고 종료하기
:w - 저장하기
:w! - 읽기 전용의 파일을 저장하기
:wq - 저장하고 종료하기
ZZ - 저장하고 종료하기
:w new_file_name - 새로운 파일이름으로 저장하기
:w %.new - 현재 파일 이름에 .new를 붙여서 새로운 파일로 저장
:n,$ w file_name - n줄부터 끝줄까지 file_name으로 저장하기
:.,n w file_name - 현재줄부터 n줄까지 file_name으로 저장하기
:n1, n2 w file_name - n1줄부터 n2줄까지 file_name으로 저장하기
:n1, n2 w >> file_name - n1줄부터 n2줄까지를 file_name으로 추가하기

<파일관리>

:w file-name - 현재 내용 저장
:w! file-name - 기존의 파일에 덮어 쓰기
:e file-name - 파일 불러오기
:e! file-name - 현재 내용을 저장않고 새 파일 불러오기
:e# - 직전 편집 파일 불러오기 - 여러 개의 파일을 동시 작업시
:r file-name - 현재 커서 위치에 파일 내용 삽입

2015년 11월 5일 목요일

Git 명령어

Git 처음 생성

로컬생성
git init

원격 레포지토리에서 복사
git clone 주소 폴더명

Git 기본 명령어
Index에 새 파일 올림
git add 파일명

커밋
git commit 화일명 -m "메세지"

원격저장소에 커밋한 데이타 보내기
git push

원격 저장소에서 데이타 받아오기
git pull

Git 기본 

지정한 커밋의 로그메세지를 수정
git commit -C HEAD -a --amend

변경내용 되돌리기
git checkout -- 파일명

인덱스에 스테이징한거 취소(add한거)
git reset HEAD <file>

터미널에서 컬러로 나오게
git config --global color.ui "true";

환경변수보기
git config --global --list

임시보관

working copy영역의 파일을 일시적으로 저장하여 working copy영역 클린
(아직 커밋하면 안되는 작업중에 pull받아야하는데 그때 충동이 일어날경우)
git stash
git stash pop //복구
git stash apply //스태시에서 제거하지않고 복구
git stash list
git stash show stash이름

브랜치

브랜치 조회
git branch

새브랜치
git branch 브랜치명

브랜치 삭제
git branch -d 브랜치명

브랜치 이름변경
git branch -m 옛 브랜치명 새로운브랜치명

태그붙이기
git tag 태그명 브랜치명

해당브랜치나 태그로 체크아웃
git checkout 브랜치명/태그명

해당 브랜치를 현재 브랜치로 합침
git merge 브랜치명

해당 브랜치의 변경사항을 현재 브랜치에 적용
git rebase 브랜치명 

로그관리

해당 파일의 마지막 변경 상세 이력을 볼수있다.
git blame 파일명

이전 커밋 취소
git reset 커밋명

최근1개의 커밋취소
git reset HEAD


변경사항무시 마지막커밋 복구
git reset --hard HEAD

커밋상세 정보를 보여준다.
git show 커밋주소

소스비교

워킹 트리 > 인덱스
git status : 워킹트리에서 아직 인덱스에 add되지 않은 파일내역
git diff : 워킹 트리와 인덱스간 소스내용 차이점
git diff <파일> : 해당 파일에 대한 워킹트리와 인덱스간 소스내용 차이점


인덱스 > 로컬 브랜치
git status : 인덱스에서 아직 commit되지 않은 파일내역
git diff --cached : 인덱스와 로컬브랜치(HEAD) 간의 차이점. "commit" 명령을 수행할 경우 반영되는 내용들


워킹 트리 > 로컬 브랜치
git diff HEAD : 워킹 트리와 로컬 브랜치(HEAD)의 소스내용 차이.

마지막 commit 이후 변경사항. ("commit -a" 명령을 수행할 경우 반영되는 내용들)
git diff HEAD -- <파일> : 해당 파일에 대한 워킹트리와 마지막 commit 이후의 소스내용


워킹 트리 > 리모트 브랜치
git diff FETCH_HEAD : 워킹 트리와 리모트 브랜치(FETCH_HEAD)의 소스내용
git diff FETCH_HEAD -- <파일> : 해당 파일에 대한 워킹 트리와 리모트 브랜치 소스내용


로컬 브랜치 > 리모트 브랜치 : Outgoing Changes
git log FETCH_HEAD.. : 로컬 브랜치에서 리모트 브랜치에 반영할 변경내역(커밋기록)
git diff FETCH_HEAD... : 로컬 브랜치에서 리모트 브랜치에 반영할 소스 변경내용


리모트 브랜치 → 로컬 브랜치 : Incoming Changes
git log ..FETCH_HEAD : 리모트 브랜치에서 로컬 브랜치로 가져와야할 변경내역(커밋기록)
git diff ...FETCH_HEAD : 리모트 브랜치에서 로컬 브랜치로 가져와야할 소스 변경내용


원격저장소

원격저장소의 변경사항을 가져와서 브랜치를 갱신
git fetch

새로운 원격저장소 추가
git remote add 이름 저장소주소

원격 저장소 목록확인
git remote

해당 원격저장소의 정보 확인.
git remote show 이름

원격저장소를 제거.
git remote rm 이름

원격저장소 브랜치로 로컬 브랜치 생성
git checkout 원격브랜치명 - git new version
git branch 로컬브랜치명 origin/원격브랜치명

개별파일 원상 복구

워킹트리의 수정된 파일을 index(staging area)에 있는 것으로 원복
git checkout  -- <파일명>


워킹트리의 수정된 파일을 HEAD에 있는 것으로 원복(--는 생략가능)
git checkout HEAD -- <파일명>


워킹트리의 수정된 파일의 내용을 FETCH_HEAD에 있는 것으로 원복(--는 생략가능)
git checkout FETCH_HEAD -- <파일명>

index 추가 취소

해당 파일을 index(staging area)에 추가한 것을 취소(unstage).
워킹트리의 변경내용은 보존됨 (--mixed 가 default)
git reset -- <파일명>
git reset HEAD <파일명>

commit 취소

최종 커밋을 취소. 워킹트리는 보존됨. (커밋은 했지만 push하지 않은 경우 유용)
git reset HEAD^


마지막 2개의 커밋을 취소. 워킹트리는 보존됨.
git reset HEAD~2



마지막 2개의 커밋을 취소. index 및 워킹트리 모두 원상복귀.
git reset --hard HEAD~2


머지한 것을 이미 커밋했을 때,  그 커밋을 취소. (잘못된 머지를 이미 커밋한 경우 유용)
git reset --hard ORIG_HEAD

HEAD에서 변경한 내역을 취소하는 새로운 커밋 발행(undo commit).
(커밋을 이미 push 해버린 경우 유용)
git revert HEAD

워킹트리 전체 원상복귀

워킹트리 전체를 마지막 커밋 상태로 되돌림.
마지막 커밋이후의 워킹트리와 index의 수정사항 모두 사라짐.
(변경을 커밋하지 않았다면 유용)
git reset --hard HEAD 







Sublime 패키지컨트롤러(package control) 설치

[Sublime] Sublime에 Package Control을 설치하는 방법이다.

<ctrl +> 를 누르거나
메뉴의 View - Show Console 선택하여
Console 창을 실행한다.
아래의 명령어를 입력 실행하면 Package Control가 설치된다.

Sublime Text3에서

import urllib.request,os; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); open(os.path.join(ipp, pf), 'wb').write(urllib.request.urlopen( 'http://sublime.wbond.net/' + pf.replace(' ','%20')).read())

Sublime Text2에서

import urllib2,os; pf='Package Control.sublime-package'; ipp = sublime.installed_packages_path(); os.makedirs( ipp ) if not os.path.exists(ipp) else None; urllib2.install_opener( urllib2.build_opener( urllib2.ProxyHandler( ))); open( os.path.join( ipp, pf), 'wb' ).write( urllib2.urlopen( 'http://sublime.wbond.net/' +pf.replace( ' ','%20' )).read()); print( 'Please restart Sublime Text to finish installation')