git add f1.txt # 선택적으로 커밋하기 위해서 commit 전에 add를 꼭해야한다.
git commit # add한 파일을 stage에 올린다.
git commit -am"commit msg"#과거 add 한 적이 있는 자동으로 add, commit 메시지 작성 후 commit
git log # 버전에 대한 정보 확인
변경사항 확인하기 (log, diff)
버전관리를 하는 가장 중요한 효용은 수정된 내용을 추적해서 문제해결을 하는데 이용하기 위해서라고 할 수 있습니다. 이 수업에서는 버전간의 차이점을 확인하는 방법에 대해서 알아봅니다.
git log -p#로그에서 출력되는 버전 간의 차이점을 출력하고 싶을 때
git diff '버전 id'..'버전 id2'# 버전 간의 차이점을 비교할 때
git diff # git add하기 전과 add한 후의 파일 내용을 비교할 때 (마지막 확인!)
과거의 버전으로 돌아가기 (reset, revert)
버전관리의 중요한 효용은 과거의 상태로 돌아갈 수 있다는 점입니다. 여기서는 이 방법에 대해서 알아봅니다. 한가지 주의하실 점은 과거로 돌아가는 작업은 위험한 작업입니다. 여기서는 과거로 돌아가는 방법이 있다는 점만 우선 확인하시고, 실제로 사용할 때는 좀 더 깊게 공부하고 사용하시는 것이 좋습니다.
git add 를 취소하는 방법
$ gs
On branch master
Initial commit
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: f1.txt
new file: f2.txt
new file: f3.txt
new file: test.txt
# test.txt 에 대한 add 명령을 취소한다.$ git reset test.txt
$ gs
On branch master
Initial commit
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: f1.txt
new file: f2.txt
new file: f3.txt
Untracked files:
(use "git add <file>..." to include in what will be committed)
test.txt
commit 을 취소하는 명령을 배운다.
주의가 필요한 명령이기 때문에 git의 원리를 배운 후에 다시 공부하는게 좋다.
git에서는 웬만하면 어떠한 정보도 삭제하지 않는다. git reset 후에도 정보가 남아있다.
원격저장소에 올린 버전은 절대로 리셋을 하면 안된다. reset은 로컬에 있는 버전에 대해서만 진핸행한다.
git log # 버전 id 확인
git reset --hard`버전id`# 버전 id로 돌아가는 명령
git revert `버전id`# 버전 id의 커밋을 취소한 내용을 새로운 버전으로 만드는 명령
마지막 커밋 메시지를 수정하기
자동으로 텍스트 편집기를 실행시켜서 마지막 커밋 메시지를 열어준다.
여기에 메시지를 수정하고 편집기를 닫으면 편집기는 수정한 메시지로 마지막 커밋을 수정한다.
amend : 조금 수정하다.
$ git commit --amend
커밋에 파일 추가하기
커밋하고 나서 새로 만들었거나 다시 수정한 파일을 마지막 커밋에 포함할 수 있다.
파일을 수정하고 git add 명령으로 Staging Area에 넣거나 git rm 명령으로 파일 삭제한다.
그리고 git commit –amend 명령으로 커밋하면 된다.
# edited file-that-i-remember.txt
git add file-that-i-remember.txt
git commit
# realize you forgot a file
git add file-that-i-forgot.txt
git commit --amend--no-edit# Where --no-edit will keep the same commit message.
h, j, k, l - 좌,하,상,우 커서이동
i - 현재 커서 위치에 Insert 하기
I - 현재 줄 맨앞에 Insert 하기
a - 현재 커서 다음칸에 Insert 하기
A - 현재 줄 맨뒤에 Insert 하기
O - 윗줄에 Insert 하기
o - 아랫줄에 Insert 하기
w - 단어 첫글자로 이동하기
W - 화이트스페이스 단위로 다음 글자로 이동하기
b - 백워드 방향으로 단어의 첫글자로 이동하기
B- 백워드 방향으로 화이트스페이스 단위로 다음 글자로 이동하기
e - 단어의 마지막 글자로 이동하기
ge - 백워드 방향으로 단어의 마지막 글자로 이동하기
gg - 문서 맨 앞으로 이동
G - 문서 맨끝으로 이동
^ - 문장 맨 앞으로 이동
0 - 라인 맨 앞으로 이동
$ - 문장 맨 뒤로 이동
f문자 - 문자의 위치로 이동 ; 를 누르면 계속 이동
F문자 - 백워드로 문자의 위치로 이동
t문자 - 문자의 앞위치로 이동
T문자 - 백워드방향으로 문자의 앞위치로 이동
/단어 - 문서에서 단어 찾기 n이나 N으로 다음/이전 찾기
* - 현재 단어를 포워드 방향으로 찾기
# - 현재 단어를 백워드 방향으로 찾기
Ctrl + f - 다음 페이지 이동
Ctrl + b - 이전 페이지 이동
Ctrl + u - 페이지절반만큼 다음으로 이동
Ctrl + d - 페이지절반만큼 이전으로 이동
H - 현재 화면의 맨 위라인으로 이동
M - 현재 화면의 중간 라인으로 이동
L - 현재 화면의 마지막 라인으로 이동
]] - 포워드 방향으로 여는 컬리 블레이스({)로 이동
[[ - 백워드 방향으로 여는 컬리 블레이스({)로 이동
][ - 포워드 방향으로 닫는 컬리 블레이스({)로 이동
[] - 백워드 방향으로 닫는 컬리 블레이스({)로 이동
% - {}나 ()에서 현재 괄호의 짝으로 이동
dd - 현재 줄 잘라내기
dw - 단어 잘라내기
yy - 현재 줄 복사하기
p - 붙혀넣기
r - 현재 글자 교체하기
u - Undo
Ctrl + R : Redo
x - 현재 글자 지우기
X - 앞의 글자 지우기
> - 들여쓰기
< - 내어쓰기
. - 이전 명령어를 다시 실행
v - 비쥬얼모드(비쥬얼 모드에서 커서 이동해서 블럭지정 가능)
y - 복사하기
c - 잘라내기
cw - 단어 잘라내기
J - 다음 라인을 현재 줄의 끝으로 이어 붙힘
~ : 선택 문자 대소문자 변경
Ctrl + A : 숫자를 증가시키기
Ctrl + X : 숫자를 감소시키기
:w - 문서 저장하기
:q - 현재 문서 닫기
:q! - 저장하지 않고 닫기
:wq - 저장하고 닫기
:숫자 - 지정한 라인넘버로 이동
:new - 가로로 분할된 창 열기
:vs - 세로로 분할된 창 열기
Ctrl + w - 분할창 간에 이동하기
:tabnew - 새로운 탭 열기
:gt - 다음 탭으로 이동하기
:gT - 이전 탭으로 이동하기
:e ./ - 현재 탭에 오픈할 파일 탐색하기( ./ 는 현재위치에서 탐색 시작)
:colorscheme 스키마명 - VIM의 칼라스키마를 변경함(blue, desert, evening 등.. 스키마명에서 탭누르면 자동완성됨)
zc - 코드 접기(fold)
zo - 접힌 코드 펼치기
zd - fold 지우기
zR - 접힌 코드 모두 펼치기
zM - 코드 모두 접기
zD - 모든 fold 지우기
:buffers - 현재 Vim에서 여러 파일을 열었을때 버퍼에 있는 목록 확인
:buffer 숫자 - 버퍼 목록에 나온 숫자를 입력하면 해당 파일을 오픈함 ( :buffer 대신 :b 도 가능)
:bnext - 버퍼에 있는 다음 파일로 이동 ( :bn 도 가능)
:bprevious - 버퍼에 있는 이전 파일로 이동 ( :bp 도 가능)
:ball - 버퍼 목록에 있는 파일들이 가로로 분할된 창에 열림
pyenv lets you easily switch between multiple versions of Python. It’s simple, unobtrusive, and follows the UNIX tradition of single-purpose tools that do one thing well.
오늘은 패스트캠퍼스 컴퓨터 공학 입문 개강날이었다. shell의 하위 개념이 bash, zsh 라는걸 알았다. terminal 대신 iTerm2를 쓰기 시작했다. agnoster 테마를 많이 사용한다고 해서 설치해보았는데 글자가 깨져서 폰트를 다운받고 해결하느라 시간을 많이 썼다.
영어공부 게시판을 django로 다시 만들었다. 글 올리기, 수정, 삭제, 가입, 로그인, 로그아웃, 댓글의 간단한 기능이지만 아직은 만들 때마다 새롭다. 만들었던 기능을 반복하면서 점점 django에 익숙해지는 기분이든다. pythonanywhere로 배포하려고 했는데 기존에 올린 사이트가 있어서 추가하지 못하는 것 같다. heroku를 사용해서 배포하는 방법을 찾아봐야겠다.
생활코딩 MySQL 기초 수업을 다 들었다. django와 mysql을 연동해서 사용하는 방법을 배우고 싶다고 생각했다.
내일부터 패스트캠퍼스 컴퓨터공학 입문 SCHOOL이 시작된다. 수업을 잘 따라갈 수 있으면 좋겠다.