본문 바로가기

개발/기타

[git] clone, branching 명령어 정리

git에 있는 프로젝트 클론하는 법


1. git clone url <원하는local folder이름(옵션)>


2.  git remote -v

상태보기


-- 프로젝트 개발 참여


본인 브랜치 만들기

git branch cat

master로 부터 나온 branch임

 

git branch

무슨 브랜치 있고, 어떤 브랜치 바라보고 있는지 나옴


git checkout cat

cat 브랜치로 이동

-b 옵션으로 만듦과 동시에 이동 git checkout -b cat


여기서 수정한거 commit하고

(여기서 수정하고 master로 돌아가서 보면 아무것도 변한게 없음)


git checkout master 마스터로 돌아가서

git merge cat 

으로 master와 머지


git branch -d cat

cat브랜치 삭제



push 했는데 reject 되면 

git pull 하고 다시 git push


pull했는데 충돌나면 그 부분 수정하고 commit하고 git push..

근데 많은 사람들이 merge된 부분 지우고, 수정해서 다시 commit하는 것을 매우 싫어함.(log가 오염된다고..)




---- remote branch

git branch -r

remote branch 목록 확인(새로운 브랜치는 안 보임)


git remote show origin

remote 정보(다보임)


git fetch 하면 모든 브랜치 가져옴


git push origin :cat  :전에 띄어쓰기 중요

remote 브랜치 삭제(local에는 아직 남아있음)


git branch -d cat

로컬 브랜치인 cat 삭제하려는데 error가 나면(머지 안 됐을 때나..)

git branch -D cat error와 상관없이 삭제

--> 리모트 브랜치를 삭제했는데 다른 개발자가 해당 브랜치로 push를 시도할 경우, 리모트 브랜치는 없어진거고 local에만 남아있는거라 up to date 라고 나옴

이 때 git remote show origin 명령어로 branch 상태를 보자


git remote prune origin

리모트 브랜치로 push하고 있던거 없어졌을 때 이 명령어로 reference 삭제? (to clean up deleted remote branched)


헤로쿠는 master 브랜치로만 배포함(push). 다른 branch는 안 됨

git push heroku-staging staging:master(local:remote)




--- tags: A tag is a referenc to a commit(used mostly for releas versioning)

git tag

태그 목록(보통 버전으로.. v0.0.1)


git checkout 태그네임

check out code at commit


git tag -a v00.2 -m "version 0.0.3"

새로운 태그 추가


git push --tags

새로운 태그 push



rebase

위에서 말했듯이 merge를 선호하지 않는 사람들이 많아서 rebase라는 방식으로 한다.

merge 대신 rebase를 생활화 할것!


push할 때 충돌나는 경우

1.git fetch

일단 merge는 않되 싱크를 맞춘다.(pull down) = remote와 sync만 맞춘다.

2.git rebase 

수정사항을 temp에 옮김

3. 머지된거 수정하고  

예를들어 <<<HEAD 같은 충돌 메세지 삭제

4. git add 파일

5. git rebase --continue

6. git push


충돌이 없는 경우 (로컬의 브랜치가 서로 sync가 안 맞는 경우, 즉 local에서 각 브랜치가 각각 커밋된 상태)

1. git checkout kennel

kennel 브랜치로 이동

2. git rebase master

master와 kennel의 공통 commit으로 돌아가고, 그 이후는 temp area에 저장하게 됨. master의 final commit을 kennel과 맞춤 -> master와 kennel은 sync가 맞게 되고 kennel의 새로운 commit 만 새롭게 가지친 상퇴가 된다(master는 새로운 commit이 없는 상태임)

3. git checkout master

마스터로 돌아가서

4. git merge kennel

kennel에 있는 수정사항을 머지한다.




'개발 > 기타' 카테고리의 다른 글

outsider님 포스팅 중  (0) 2016.06.27
코드아카데미 루비 정리  (0) 2015.12.31
[git] reset, stash 명령어 정리  (0) 2015.06.25
[git] code school - try git 노트  (0) 2015.06.25
쿠키와 세션  (0) 2015.02.17