Git 명령어
1. 상태확인
git log
- HEAD : 현재 사용중인 브랜치, HEAD를 이동시켜 commit 선택 가능
어떻게 이동시키는가?
HEAD~N : N세대 앞의 커밋 ex) git log HEAD~1
HEAD^N : N번째 원본인지 지정 ex) git log HEAD^1
git log -p -n
: 최신순으로 n개의 커밋보기
git log --stat
: 수정 전 또는 삭제된 코드 보기
git status
: untracked file 확인 가능. 즉, stage에 올라가지 않은 file 확인 가능 (add 명령 전)
2. branch
로컬 저장소용 브랜치 : master
원격 저장소용 브랜치 : origin
리모트 브랜치 : origin/master 또는 [원격저장소용 브랜치/로컬저장소용 브랜치]
* 각 commit은 현재 branch 에서 추가된다.
git branch [브랜치명]
: 브랜치 생성
git branch --merged
: 합친 브랜치 보기 (*는 현재 브랜치)
* 현재 A브랜치에 있을 때, B브랜치를 생성하면 나중에 B브랜치를 A브랜치에 합병할 수 있다.
이 때, B브랜치에 HEAD가 있을 것이다.
<브랜치 합병하기>
git checkout branchA
git merge branchB
이미 분기전 브랜치면 checkout은 할필요 x
부모 브랜치 상태에서 자식 브랜치들을 합병 (모든 커밋이 적용됨)
git branch --no-merged
: 안합친 브랜치 보기
git checkout [브랜치명]
: 브랜치 바꾸기
3. 원격저장소에 파일 올리기
<아래의 순서 유지>
git pull
: 반드시 원격 저장소 내용을 로컬 저장소에 동기화 시킬 것. (동기화 안되어 있을 경우 push 할 때 거절됨)
git add [FilePath]
: stage에 올리기. 다올리려면 --all 옵션 추가
git commit -m "message"
: 변경사항을 인덱스(INDEX)에 올리기. stage에 올라온 내용만 커밋가능.
git push -u origin [현재브랜치명]
: master가 일반적이나, 새 브랜치일 경우 origin/새브랜치명 으로 리모트 브랜치가 생성된다. 이미 있다면 해당 리모트 브랜치에 내용물이 올라간다.
4. 취소하기
git reset
: 이전의 커밋으로 HEAD가 이동.
--mixed : (default) 인덱스는 변경사항이 저장된 곳(?)인데, 이 옵션을 추가하면 커밋만 취소되고, 실제 인덱스에는 커밋내용이 담겨져 있음. 즉, 취소한 걸 또 취소할 수 있다. 이전의 커밋으로 HEAD가 이동한다.
--hard : 작업 디렉토리(로컬 저장소)와 인덱스 동기화. 이전 커밋내용이 날아간다~~
5. 리모트 브랜치를 로컬저장소에 동기화시키기
git checkout [로컬 저장소의 브랜치]
git reset --hard [원하는 리모트 브랜치]
: 궂이 [origin/로컬브랜치]가 아니어도 된다. 즉, 현재 master 브랜치에 있더라도 origin/abc 나 origin/def 와 같은 리모트 브랜치의 것도 동기화가 된다.
git push origin [현재 로컬 브랜치]
: 위에서 싹 청소시킨 [원하는 리모트 브랜치]를 "origin/로컬브랜치"의 내용물로 덮어쓴다.
명령 후 상태는 origin/로컬브랜치 = 원하는 리모트 브랜치
ex)
git checkout master
git reset --hard origin/test
git push origin master
-> origin/master = origin/test
6. 그냥 리모트 브랜치를 로컬에 가져오기(로컬에서 보기)
git checkout --track [원하는 리모트 브랜치]
Bitbucket 사용하기 (+ AWS)
1. SSH 키 생성하기
ssh-keygen
: 로컬컴퓨터(경로는 ~/.ssh/)에서 키 생성 (passphrase-암호문은 생성안해도 괜찮음)
* .pub 확장자가 퍼블릭 키이다.
2. 생성한 Public Key는 Bitbucket 설정에서 사이트에 올릴 것
Repository Setting이 아닌 Project Setting에서 ssh public key를 등록
3. 혹시모르니 내 컴퓨터에서 키 등록
ssh-add ~/.ssh/<private_key_file>
4. 등록된 ssh 리스트 보기
ssh-add -l
5. AWS 인스턴스에서 ~/.ssh/ 에다가 1번에서 생성한 Private Key를 저장 (Not Public)
내용물을 복사해도 완전히 붙여넣기가 안될 수 있으므로 확인해야함 (이거땜에 삽질 ㅡㅡ)
6. aws 인스턴스에서 Bitbucket으로 로그인해보기
ssh -Tv username@bitbucket.org
(옵션은 디버깅옵션)
logged in 뜨면 성공
안뜨면 ping 찍어서 Security Group에 인바운드/아웃바운드 정책 맞게 설정했는지 볼 필요 OOOOOO
+기타 명령어)
ps -e | grep ssh-agent
: ssh가 실행중인지 확인할 것 (실행되면 ok)
7. Bitbucket 저장소에서 내용물을 받아보자.(또는 올려보자)
git init
git clone ~~~
git remote set-url origin [HTTPS URL]
git pull --all 또는 git add --all
git commit -m ""
git push -u origin master
'Note' 카테고리의 다른 글
make 사용법 (+Makefile) (0) | 2018.06.29 |
---|---|
GCC 사용법 (0) | 2018.06.29 |
Domain Name System - DNS와 네임서버 (0) | 2017.06.20 |
운영체제별 개행문자(줄바꿈문자) (0) | 2017.06.20 |
FPS : Frames Per Second (1) | 2017.03.28 |