본문 바로가기

프로그래밍 놀이터/Tips146

[git] Git Prune 에 대해 알아보자 [git] Git Prune 에 대해 알아보자 https://www.atlassian.com/git/tutorials/git-prune -git pull (fetch) 과정에서 ref lock 에러를 마딱뜨렸는데, 이 때 해결방법중 하나가 'git remote prune origin' 을 수행하는 것이라 한다.그래서 이 녀석의 정체에 대해 알아보고자 한다.$ git remote prune origin -git prune 은 unreachable 한 git object 들을 "local" 에서 clean 하는 작업이다.unreachable 이란 git tree 에 의해 참조되지 않는 gc 대상이 되는 dangling refs 들이다. -git prune 은 보통 직접 수행되지 않는다.이 녀석은 git gc.. 2020. 3. 6.
[git] git pull error : remote ref is at xxx but yyy expected [git] git pull error : remote ref is at xxx but yyy expected -git pull 을 수행하다보면 종종 "git pull error : remote ref is at xxx but yyy expected" 의 에러를 내뱉으며 pull 이 실패하곤 한다.xxx, yyy 는 hash 값이고, 실상 저 에러는 git fetch 과정에서 발생한다.그런데 이 에러가 영구적이지 않고, 에러 발생 이후 다시 pull 을 시도하면 다시 잘 작동한다... -이 에러가 발생하는 이유 중 하나는 누군가가 repository 의 history 를 git push --force 로 해서 tree 를 망가뜨렸기 때문이라고 한다. (stackoverflow 의 답변 참고) -또 다른 이.. 2020. 3. 5.
[git] fetch 하기 & pull 하기 [git] fetch 하기 & pull 하기 * fetch 하기 $ git fetch [remoteName]$ git fetch origin # 일반적으로 remoteName 은 origin * pull 하기 ( fetch & merge ) $ git pull [remoteName] [refSpec]$ git pull origin fix/issue_1 # 일반적으로 remoteName 은 origin, refSpec 은 branchName git fetch, git fetch origin, git fetch remoteName, git pull, git pull origin, git pull remoteName, [git] fetch 하기 & pull 하기 2020. 3. 4.
[git] 수정 사항 되돌리기 ( stage to unstage, reset modifed ) [git] 수정 사항 되돌리기 ( stage to unstage, reset modifed ) * Staged 를 Unstage 로 하기-$ git reset $ git reset HEAD $ git reset --mixed HEAD -자세한 내용과 옵션은 따로 조사를 해보자!참고로 --hard option 을 사용하면 modified 내역도 사라져버린다. * Modified 를 되돌리기 -$ git checkout -- -checkout 은 branch 관련 작업에도 사용되므로 관련해서는 따로 조사를 해보자. git checkout, git reset HEAD, git stage to unstage, reset modifed, reset modifed ), stage to unstage, [git] 수.. 2020. 3. 3.
[regex] Possessive quantifier 에 대해 알아보자. [regex] Possessive quantifier 에 대해 알아보자. https://chortle.ccsu.edu/FiniteAutomata/Section09/sect09_21.html -regex 의 quantifier 는 greedy(by default), reluctant(or lazy), possessive 중 하나이다.possessive 는 다음과 같이 일한다. 1. first unmatched char 부터 match 를 시작한다.2. 왼쪽부터 오른쪽으로 매칭 시작한다.3. 가능한 많이 matching 시킨다.4. char 가 matching 되면 quantifier 를 유지하고, 나머지 regex 의 matching 을 무시한다. (back-tracking 하지 않는다.) -quantif.. 2020. 2. 29.
[regex] 정규식 성능에 대해 알아보자 정규식 성능에 대해 알아보자 http://egloos.zum.com/sword33/v/7294056 -정규식은 어떻게 사용하느냐에 따라 성능이 엄청나게 요구될 수 있다.다음 네가지를 유의하면 성능을 잘 뽑을 수 있다. 1. back tracking 최소화2. 정확히 작성3. 위치지정자 사용 (^, $)4. 탐욕적 수량자보다는 게으른 수량자 사용 -https://regex101.com위 사이트는 정규식을 테스트해볼 수 있다.이에 더해 정규식 판별 시간과 step수도 체크할 수 있고, debug 도 할 수 있어 아주 유용한 사이트. -back tracking 은 정규식이 왼쪽에서 오른쪽으로 탐색하는데, 100% 매칭되지 않으면 다시 돌아가서 다시 매칭을 시도하는 것을 이야기한다. -정규식은 target 이 .. 2020. 2. 28.
[도서 정리] 13. Git 명령어 - ProGit [도서 정리] 13. Git 명령어 - ProGit 13.1. 설치와 설정 * git config * git help -$ git help 13.2. 프로젝트 가져오기와 생성하기 * git init * git clone 13.3. 스냅샷 다루기 * git add * git status * git diff * git difftool * git commit * git reset * git rm * git mv * git clean 12.4. Branch 와 Merge * git branch * git checkout * git merge * git mergetool * git log * git stash * git tag 12.5. 공유하고 업데이트하기 * git fetch * git pull * git p.. 2020. 1. 18.
[도서 정리] 12. 앱에 git 넣기 - ProGit [도서 정리] 12. 앱에 git 넣기 - ProGit -Libgit2 를 사용하거나 jgit 을 사용한다. 12.1. Git 명령어 -셸 프로세스를 띄우고(spawn) git 명령어를 실행하는 방법이 있다.이게 가장 표준적인 방법으로 git 의 모든 기능을 사용할 수 있다.그러나 몇 가지 제약사항이 있다. 첫째는 결과가 텍스트로 출력된다.git 이 상황에 따라 다르게 출력하는 결과를 파싱해야 한다. 둘째는 에러 처리가 어렵다.저장소가 깨져있거나 사용자가 잘못 설정했을 때 git 은 그냥 제대로 실행되지 않을 뿐이다. 마지막으로 프로세스를 관리해야 한다. 12.2. Libgit2 -libgit2 는 git 에 의존하지 않는다. * 고급 기능 -libgit2 로 git 을 확장하는 일도 가능하다.libgi.. 2020. 1. 17.
[도서 정리] 11. 다양한 환경에서 Git 사용하기 - ProGit [도서 정리] 11. 다양한 환경에서 Git 사용하기 - ProGit 11.1. GUI * gitk 와 git-gui -git 을 설치하면 gitk 와 git-gui 도 같이 설치된다. -gitk 는 히스토리를 그래프로 보여준다.git log 와 git grep 을 합쳐놓은 GUI 도구라고 보면 된다.$ gitk [git log options] -git-gui 는 꼼꼼하게 커밋하는데 사용하는 커밋 도구다.$ git gui * GitHub 클라이언트 -mac 용과 윈도우용이 있다. * 다른 GUI 도구들 11.2. Visual Studio -Visual Studio 2013 Update 1 부터 git 클라가 visual studio 에 들어갔다. 11.3. Eclipse -Egit 이라는 플러그인이 있다.. 2020. 1. 16.