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

+ Recent posts