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 |