'Git'에 해당되는 글 3건

  1. 2011.12.08 [git] remote에 있는 branch 삭제하기
  2. 2011.11.09 [git] 충돌 체험기
  3. 2011.10.27 [git] user.name, user.email 삭제
터미널에서 브랜치 도움말을 보려다가 실수로 브랜치를 생성하고 원격저장소(remote)에 올리고 말았다.

ZMBP:mobile zeidepeace$ git help branch
브랜치 도움말 보기
ZMBP:mobile zeidepeace$ git branch help 
help라는 이름의 브랜치 생성하기


브랜치를 삭제하는 명령어는 

ZMBP:mobile zeidepeace$ git branch [-d|-D]


-d는 모두 머징이 된 상태여야 브랜치가 삭제가 되며 -D는 머징하고 상관없이 브랜치가 삭제된다.

브랜치를 삭제하고 전체리스트(-a)를 확인하면

ZMBP:mobile zeidepeace$ git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master
  remotes/origin/help


로컬저장소에서는 삭제가 되었는데 원격저장소에 올라간 브랜치는 삭제되지 않고 남아있는게 보인다.

http://help.github.com/remotes/ 에서 찾아보면 원격저장소에 올라간 브랜치/태그를 삭제하는 방법이 나와있다.

 

ZMBP:mobile zeidepeace$ git push origin :help
remote: fatal: bad object 0000000000000000000000000000000000000000
remote: bb/acl: hyo is allowed. accepted payload.
remote: fatal: bad object 0000000000000000000000000000000000000000
To git@bitbucket.org:d/mobile.ios.git
 - [deleted]         help 


다시 확인하면 

ZMBP:mobile zeidepeace$ git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master 


브랜치가 삭제된 것을 알 수 있다.

Posted by zeide
,

[git] 충돌 체험기

자료 2011. 11. 9. 09:46
비록 2인(나포함)이지만 DVCS로 소스를 관리하고 있다. 저장소는 bitbucket.org(빛바굴이라고 부른다).
오늘은 오랜만에 A님께서 푸시를 하셨다.

직진하는 곰돌이가 나, 알 수 없는 도형 A.


그때 나는 무언가 로그를 보겠다고 소스에 손을 대고 있었다.
그 와중에 pull을 하니...

ZMBP:************* zeidepeace$ git pull
remote: Counting objects: 23, done.
remote: Compressing objects: 100% (15/15), done.
remote: Total 15 (delta 11), reused 0 (delta 0)
Unpacking objects: 100% (15/15), done.
From bitbucket.org:########/*************
   559aad6..9e2d63d  master     -> origin/master
Updating 559aad6..9e2d63d
error: Your local changes to the following files would be overwritten by merge:
Classes/Controllers/MobileWeb/MobileWebViewController.m
Classes/Extends/MOKMutableURLRequest.m
mok.front.ios.xcodeproj/project.pbxproj
mok_front_ios-Info.plist
mok_front_ios_Prefix.pch
Please, commit your changes or stash them before you can merge.
Aborting

예상했던대로 일이 생겼다. 
지금 이 상황은,  5개의 파일을 로컬저장소에서 수정하고 있었는데 원격저장소의 파일을 불러와(pull) 덮어씌우게 된다고 말해주는 것이다.

그래서 다음과 같이 처리했다.
1. 지금 상황을 commit까지만 한다.
2. HEAD를 이전으로 돌린다.
ZMBP:************* zeidepeace$ git reset --hard HEAD@{1} 
3. 로컬저장소에서 pull한다. 

마지막에 푸시를 해서 가지를 늘려보았다.

양쪽 소스를 머징하는게 아니라 받기만 하면되는지라 간단하게 끝났다.
 
PS)이력을 볼 수 있다.
ZMBP:************* zeidepeace$ gitk 

 
Posted by zeide
,
명령어로는 잘 몰라서 
결국

vi .git/config
파일을 열고

[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
        ignorecase = true
[remote "origin"]
        fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
        remote = origin
        merge = refs/heads/master
[user]
        user.name = name
        user.email = email@email.net 
삭제하고

:wq!
저장 종료

git config --list
 
user.name=zeide
user.email=zeide0325@gmail.com
core.excludesfile=/Users/zeidepeace/.gitignore_global
difftool.sourcetree.cmd=opendiff "$LOCAL" "$REMOTE"
difftool.sourcetree.path=
mergetool.sourcetree.cmd=/Applications/SourceTree.app/Contents/Resources/opendiff-w.sh "$LOCAL" "$REMOTE" -ancestor "$BASE" -merge "$MERGED"
mergetool.sourcetree.trustexitcode=true
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
core.ignorecase=true
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
branch.master.remote=origin
branch.master.merge=refs/heads/master
 
확인.
 
Posted by zeide
,