github 로고이다

글 작성은 vi 파일이름으로 한다. 

처음 파일을 작성하였다면, 스태이지에 파일을 올려야 한다. 

Github 스테이징 하기.

> git add 파일이름  또는 git add .

이렇게 하면 스테이지에 파일을 올린다. 이후에는 자동으로 추적을 한다. 스테이지 내용은 .git/index 파일에 저장한다. 저장소의 내용은 .git/HEAD 파일에 저장한다.

스테이징 후 커밋하기

> git commit - m "설명"

이렇게 명령어를 넣으면 된다.

trackted 파일 커밋하기

> git commit -am "설명"

아주 간단하게 할 수 있다. 보통 git add . / git commit  -m "설명"  이렇게 명령어를 두번 작성하지만, 그 두 명령어를 한 줄로 줄일 수 있는 명령어가 바로 '-am'이다. 물론 조건이 있다. 한 번은 커밋을 하여 추적 상태 파일이어야 한다. 다른 말로 trackted 파일이어야 한다. 이후에는 git add  를 하지 않고, 바로 > git commit -am "설명" 이렇게 한 번에 커밋을 할 수 있다. 편하구만.

방금 커밋한 메시지 수정해보자

> git commit --amend

위 명령어를 입력하면 바로 전에 커밋한 내용의 설명을 수정할 수 있다. 위 명령어를 입력하면 편집기가 나온다. 편집기에서 설명을 수정하고 저장하면 된다. 가끔 사용할 일이 있다. 

클론하기 

> git clone "원격주소" 

이렇게 명령어로 내려 받을 수 있다. 주소 뒤에 '.' 을 넣으면 현재 폴더에 파일을 받아온다. 이미 폴더를 만들었다면 '.'을 주소 뒤에 한 칸 뒤에 넣어보자. 그러면 현재 폴더에 원격 파일을 받아온다. 

> git clone "원격주소" "폴더이름"

위 명령어로 클론 하면서 바로 폴더를 만들 수 있다. 한 번에 하는 것은 항상 편하다. 폴더 별도로 만들지 말고 바로 폴더까지 만들 수 있어서 편하다. 정말 편하다.

스테이징 되돌리기

> git reset HEAD^

위 명령어로 바로 전 커밋한 내용을 취소할 수 있다. 가끔 사용할 일이 있다. 커밋한 내용이 잘못된 내용이라면 그 커밋을 취소해야 한다. 위 명령어로 취소할 수 있다. 이렇게 취소한 다음에 push 를 해야 한다면, 강제로 푸쉬해야 한다. 다시 말해서, 이미 push 한 내용이 잘못되었음을 알고, 다시 푸쉬하는 것은 다음 명령어로 가능하다.  

만약 여러개를 취소하고 싶다면

> git reset HEAD~3

숫자 3이 바로 3칸 앞으로 간다는 의미이다. 3번 전 커밋으로 돌아간다. 숫자를 바꾸면서 연습을 해보자.

reset 은 --mixed, --soft, --hard, 로 나눌 수 있다. 기본 설정이 --mixed 이다. --soft는 커밋만 취소하고 수정한 코드는 남긴다. --hard 는 파일 수정 사항도 취소하고 다시 되돌릴 수 없다. 

강제로 push 하기

> git push -f

위 명령어로 방금 수정한 커밋을 강제로 원격 전송할 수 있다. 이렇게 하면 그 전에 올린 내용이 덮어쓰기로 삭제된다. 수정한 내용을 지울 수 있어서 가끔 사용할 일이 있다. 하지만 지저분하게 수정해도 되는 브랜치를 별도로 만들어서 작업하는 것이 더 낫다. 브랜치 몇 개 더 만든다고 용량 크게 필요한 것도 아니다. 

브랜치 만들어보자

> git branch <이름>

위 명령어로 브랜치를 만들 수 있다. 그리고 > git checkout <브랜치이름> 으로 해당 브랜치로 이동할 수 있다. 하지만 한번에 브랜치를 만들고 이동하고 싶으면 다른 명령어를 사용해야 한다. 그 명령어는 바로

브랜치 만들고 체크아웃 하기

> git checkout -b <이름>

이렇게 하면 브랜치 만들면서 그 브랜치로 이동한다. 명령어를 줄일 수 있다. 이 명령어를 사용하기 바란다. 아주 편리하다.

로그 한 줄씩 보면서 그래프 표시

> git log --oneline --branches --graph

브랜치는 반드시 es 접밈사를 붙여야 한다. 그래야 모든 브랜치의 내용이 그래프로 나온다. 

브랜치 사이의 차이 표시하기

> git log master..test

master 와 test 사이에 ".." 문자열이 보인다. 왼쪽을 기준으로 오른쪽과 차이를 알려달라는 명령어이다. 브랜치 사이에서 사용할 수 있다. 차이가 있는 커밋을 표시해준다.

브랜치 병합하기

> git merge <브랜치이름>

이렇게 하면 브랜치를 병합할 수 있다. 중요한 것은 미리 폴더를 이동하여 병합을 해야 한다는 것이다. git checkout 으로 병합할 폴더로 가서 위 명령어를 실행하면 위 명령에 적은 브랜치에서 파일을 가져와서 병합한다. 그러면 병합할 내용의 메시지를 기록하는 창이 나온다. 편집기에서 메시지를 기록하고 저장하고 닫는다.

브랜치 삭제하기

> git branch -d <이름>

> git branch -D <이름>

두개의 차이점은 브랜치를 병합한 후에 삭제하느냐의 차이이다. -d 는 병합을 한 후에 삭제할 때 사용한다. 아직 병합을 하지 않았다면 오류가 나온다. 병합하지 않은 브랜치라도 삭제하고 싶다면 -D 옵션을 사용한다. 브랜치를 삭제할 수 있다.

 

Posted by 뭔가느낌이
,