2013년 11월 27일 수요일

Git 사용하기

Git 사용하기

ssh public key 등록

public key 생성
$ ssh-keygen
옵션
  • -t type
    • 타입에는 보통 RSA 나 DSA 가 쓰입니다. (공개키 암호화 알고리즘)

$HOME/.ssh/ 에 public key 와 private 키가 생성된다.
예) 알고리즘 방식이 RSA 인 경우
-rw------- 1 skplanet staff 1679 4 2 15:25 id_rsa
-rw-r--r-- 1 skplanet staff 417 4 2 15:25 id_rsa.pub
ssh 프로토콜을 이용해 git 을 사용하기 위해서는 먼저 public key 를 저장소 서버에 등록해야 합니다.
$ cat ~/.ssh/id_rsa.pub
ssh-rsa ...
Icon
조회된 결과를 [ SK Valley > 내 작업 영역 > 내 설정 > 인증 키 ]에 등록한다.

저장소 만들기

$ git init

이미 존재하는 저장소를 로컬 저장소로 가져오기

$ git clone git://server/user/path.git
이외에도 Git 은 다양한 프로토콜을 지원한다.
  • git://
  • http(s)://

Staged Area 에 파일 추가하기

$ git add *.java
$ git add README.md

Staged Area 에 있는 파일 commit 하기

$ git commit -m "커밋 메시지"

파일 상태 확인

$ git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#   new file:   README.md
#
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#
#   modified:   benchmarks.java
#

Staged Area 에 파일 빼기

$ git reset HEAD <file>

제외 항목 설정

프로젝트 루트에 .gitignore 파일을 추가한다.
.*          # dotfiles 를 제외한다. ( . 으로 시작하는 파일들 )
target/     # target 디렉토리를 제외한다.

파일 제거

$ git rm <file>


저장소 서버에 push

로컬 저장소에 commit 된 내용을 원격 저장소(SK Valley)에 저장하기 위해선 push 명령을 사용해야 합니다.
먼저 등록된 원격 저장소 목록을 확인합니다.
$ git remote -v

만약, 등록된 저장소가 없을 경우 원격 저장소를 등록합니다.
$ git remote add <name> <url>

local 저장소와 remote 저장소 비교하기
git log --left-right --graph --cherry-pick --oneline branchname...remote/branchname

정상적으로 등록이 되었다면 push 명령어로 로컬 저장소에 커밋된 내용을 원격 저장소에 보낼 수 있습니다.
$ git push

되돌리기

커밋 수정하기

$ git commit --amend
예를들어 커밋을 했는데 빠트린 파일이 있으면 다음과 같이 고칠 수 있다.
$ git commit -m 'initial commit'
$ git add forgotten_file
$ git commit --amend
여기서 실행한 명령어 세 개는 모두 하나의 커밋으로 기록된다. 두번 째 커밋은 첫 번째 커밋을 덮어쓴다.

이전 커밋으로 되돌림

$ git reset --hard HEAD^1

파일 상태를 Unstage로 변경 하기

$ git reset HEAD filename

수정된 파일 되돌리기

$ git checkout -- filename
수정 이전의 파일로 덮어씌우므로 수정했던 내용은 전부 사라지므로 위험하다. Stashing 과 Branch 를 사용하는 것을 권장.

댓글 없음:

댓글 쓰기