본문 바로가기

git

[Git] forked repository 관리 fork된 repository에 대해서 원본 repository로부터 최신 소스를 받아오는 방법. 1. 원본 repository : http://github.com/need4spd/org.git forked repository : http://github.com/need4spd_sub/org.git 2. 원본 repository는 계속 commit이 push되고 있는 상태이고, forked repository에서 개별적인 작업을 진행하고 있는상황이라고 가정 3. forked repository에서..git remote add origin http://github.com/need4spd_sub/org.gitgit remote add original_repo http://github.com/need4spd/.. 더보기
[Git] git pull 할 때 internal server error 발생시 조치 git pull을 하는데 갑자기 아래와 같은 오류가 났다. remote: internal server errorfatal: protocol error: bad pack header 스레드 생성 오류가 나면 메모리를 늘려주는것 같은데..이건 그 케이스도 아니라서.. 찾아보니 현기형님 블로그에 똻!(http://eclipse4j.tistory.com/178) 해결방법은git remote prune origingit gc --auto git pull origin 실행시 발생하였는데, local과 remote간 branch가 차이가 많아한번 정리를 해줘야하는건가.. 싶네. 더보기
[git] make branch from origin git checkout mastergit fetch origingit checkout -b localbranchname origin/branchnamegit branch 더보기
[git] merge squash git merge branchname --squash -Xignore-space-change 더보기
[git] progit 재독하며 몰랐던것 정리 처음 git을 접한 후 개인프로젝트에만 사용을 하면서 항상 쓰게되는 명령어만 사용하다가 쿠팡에 온 후 애자일팀의 소스관리를 git으로 하게 되면서 혼자 쓰던것보다는 좀 더 많은 명령어를 사용하게 되었다.몇권의 책도 읽고 했었지만 거의 사용하지 않았던 명령어가 대부분이었는데 최근 몇개월 git을 본격적으로 쓰면서 다시 pro git 책을 읽기로 마음을 먹었다. 사용하면서 "있었으면 좋겠는데.." 했던 기능들..하지만 내가 모르고 있는.. 그런 기능들도 다시 한번 찾아보고 싶고..경험상 분명히 이해도가 예전과는 다를것이라서.. 그래서 책을 재독하면서 그러한 내용들을 추가로 정리해보기로... 1. git add [directory] 하면 디렉터리 아래에 있는 모든 파일이 재귀적으로 추가된다. - 평소에는 gi.. 더보기
[Git] remote 브랜치 삭제 local branch 삭제는 git branch --delete 입니다. remote branch 삭제는 git push : 입니다. ex> git push origin :branch_hotfix 더보기
[Git] rm or checkout multiple files in git git을 사용하다보면 checkout이나 rm등을 할 때 여러 파일들에 대해서 작업을 진행해야 하는 경우가 있다.몇가지 파일을 수정 후 "git status" 명령어로 조회하면 modified: a.javamodified: b.javamodified: c.java 이런 형태로 나오는데, 이를 다시 롤백하려면 "git checkout -- a.java" 이런식으로 파일명을 적어줘야 한다. rm도 마찬가지... "git rm a.java b.java" 형태가 되어야 한다. 이럴때 git ls-files 명령어를 사용하자. git checkout -- $(git ls-files --modified)git rm $(git ls-files --deleted) 뒤에 붙은 조건은 좀 더 여러가지가 있겠다. git l.. 더보기
[Git] Editor 설정 (windows - git-bash) git config --global core.editor "\"c:\Program Files (x86)\Git\bin\vi\"" 더보기
[Git] rebase 이런 명령어가 있는줄도 몰랐었고.. (ㅋㅋ --;)지금도 좀 어려운 rebase입니다. progit에서 보면 merge를 하긴하는데.. 일반적인 merge와는 다르게 작동을 합니다. 보통 rebase는 리모트 브랜치에 깔끔하게 적용하고 싶을때 사용한다고하네요..실제로 rebase 후에 커밋 히스토리를 보면 갈라졌던 브랜치의 커밋 히스토리가 선형으로 변경되는 것을 보실 수 있습니다. progit에서 나오는 케이스 중 첫번째 rebase 설명에 대한 예제만.. 소스트리를 통해 확인해보았습니다. 우선, 마스터 브랜치와 br1 브랜치가 나누어져 커밋이 되어있는 형태입니다.이 상태에서 merge를 하면 3-way merge가 발생합니다. - 3-way merge가 된 후의 커밋히스토리입니다. 새로운 커밋이 생긴것.. 더보기
[Git] git merge - fast forward, 3-way-merge 최근 회사에서 git을 사용하게 되면서 progit책을 구입하여 다시 git을 공부하고 있습니다.github을 통해서 개인적으로는 git을 계속 써오긴했으나 사용하는 명령어가 clone, push, fetch, pull, commit등 주로 혼자 사용하게 되는 명령어로 한정이 되어있던데다가... 지금 회사처럼 많은 개발자가 동시에 사용해본 경험도 없어서 아무래도 한계가 금방 다가오더군요... progit책에 대한 리뷰는 곧 쓸 예정이긴한데요.. 내용중 merge에 대한 내용을 직접 실습해보면서정리를 할겸 블로그에 포스트를 남겨봅니다. merge는 크게 fast-forward와 3-way merge로 나뉘어집니다. 저는 처음에 git에서의 merge가 각 파일의 수정사항을 하나하나 비교하면서 직접 파일의 .. 더보기