2017.01.19 14:06

이번에는 충돌이 일어났을 때 어떻게 하면 될지 알아보겠습니다. 



master와 branch에서 한번에 두 파일을 모두 수정 후,




master와 branch에 각가 commit/push 합니다.


이제 branch를 master에 병합 시도합니다.


아래 그림처럼 충돌이 일어난 것을 확인할 수 있습니다.




텍스트 파일이니 외부 병합 툴을 이용해 문제를 해결해 보겠습니다.


상단 메뉴를 보면 A, B, C가 있습니다. 

A가 원래 없던 최초 버전, B와 C가 master와 branch에서 작성된 내용입니다.


두 텍스트 모두를 유지하려면 B와 C  버튼을 눌러주면 하단에 순서대로 정리가 됩니다.




출동이 있었던 텍스트 파일이 정리된 모습입니다.


마지막으로 push하면 아래와 같이 잘 병합된 모습을 볼 수 있습니다.



바이너리 파일일 경우, 내 저장소의 파일 혹은 받은 파일을 유지할지를 설정해야 합니다.


이상. 끝!!! ^^








저작자 표시 비영리 동일 조건 변경 허락
신고
2017.01.06 11:20

마지막으로 branch 관리하는 방법에 대해 알아겠습니다.


SVN은 branch 관리하는게 상당히 까다롭고 시간이 많이 걸리는 문제점이 있었는데, git은 상당히 가볍고 로컬 저장소와 원격 저장소가 분리되어 있어서 각자의 작업을 진행하며 다른 작업자의 작업을 방해하지 않으면서도 백업/롤백이 손쉽게 가능합니다.


첫번째로 branch를 만들어 보겠습니다. 이름은 "sampleBranch"로 해보겠습니다.



아래처럼 branch가 생성된 것을 확인할 수 있습니다.




이제 branch 에서 하나의 파일을 수정한 후, master로 병합해 보겠습니다. 



텍스트 파일을 열어 내용을 추가하고 commit를 합니다. 




그 후 아래 화면처럼 push를 해줍니다.



그럼 자신의 branch와 origin까지 업데이트 되었다는 표시를 볼 수 있습니다.




 위 화면의 좌측 브랜치 트리에서 master와 sampleBranch를 선택하면, 선택된 브랜치의 글씨가 볼드체로 바뀌며 현재 작업 폴더의 브랜치가 지정됩니다. 

 master를 선택 후 "second document.txt"파일을 열어보면 좀 전에 추가했던 텍스트가 보이지 않는 것을 확인할 수 있습니다. 


이제 master로 sampleBranch의 내용을병합해 보겠습니다. master를 선택 후, sampleBranch에서 메뉴를 열면 아래와 같은 메뉴 리스트가 나옵니다. "현재 브랜치(master)로 sampleBranch 병합"을 선택하면 sampleBranch의 내용이 master로 병합됩니다.



다시 "second document.txt" 파일을 열어보면 파일이 정상적으로 병합된 것을 확인할 수 있습니다.


다음 아티클에서는 충돌 시 어떻게 처리해야 할 지 살펴보겠습니다.

저작자 표시 비영리 동일 조건 변경 허락
신고
2016.12.27 19:03

이번에는 저장소에 파일을 올려보겠습니다. 


해당 프로젝트 폴더에 새로운 파일을 생성해 보겠습니다. 임시로 이름은 "new document.txt"로 하겠습니다. 


"Stage All" 혹은 "Stage Selected"를 선택하고, 로그를 입력하여 커밋을 하며, 로컬 저장소에 업데이트 됩니다. 


커밋이 완료되면 아래와 같이 히스토리가 처음으로 생성된 것을 확인할 수 있습니다. 하지만 아직은 로컬 저장소에만 기록된 상태이며, bitbucket 원격 저장소로는 업데이트가 되지 않은 상황입니다. 



원격 저장소로 업데이트하기 위해서는 상단 메뉴 중 "푸시"를 눌러 진행할 수 있습니다. 푸시를 누르면 아래와 같은 창이 뜨며, 어떤 브랜치의 변경 사항을 Push할지 선택할 수 있습니다. 지금은 master 앞의 체크 버튼을 누른 후 하단의 "푸시" 버튼을 누르시면 서버로 업데이트를 진행합니다.



업데이트가 완료되면 기존 "master" 표기만 있었는데, 앞쪽으로 "origin/master"가 추가된 것을 확인할 수 있습니다. 



이제 bitbucket.org의 저장소 화면으로 가면 웹에서도 확인할 수 있게 됩니다.



다시 파일을 수정하여 커밋/푸시를 진행하면 아래와 같이 추가 변경된 내용을 볼 수 있습니다. 



그럼 어떤 파일을 특정 시점의 버전으로 롤백하는 과정을 살펴 보겠습니다. 


원하는 브랜치에서 해당 버전을 클릭하면 하단에 해당 버전에서 수정된 파일 리스트가 나옵니다. 


이때, 우측으로 가면 "..."으로 되어 있는 누르면 파일 되돌리기 버튼이 나오는걸 볼 수 있습니다. 


그걸 누르면 지정한 파일이 원하는 버전으로 수정됩니다.




이후 커밋/푸쉬하면 수정된 내용이 최종적으로 업데이트 됩니다. 


다음에는 브랜치를 관리하는 방법을 알아보겠습니다. 

저작자 표시 비영리 동일 조건 변경 허락
신고
2015.02.05 19:41

아파치(apache2.4.x)를 오랜만에 건드리는데 왜케 많이 변한거지 --;


아래는 gitweb과 연동하는 과정에서 perl 설정을 추가한 부분.


Alias /gitweb /usr/share/testWeb


<IfModule mod_perl.c>

<Directory /usr/share/testWeb>

   Options +ExecCGI

   AddHandler perl-script .cgi .pl

   PerlResponseHandler ModPerl::Registry

   PerlOptions +ParseHeaders

   AllowOverride None

    Require all granted

    AuthType Basic

    AuthName "Git Access"

    Require valid-user

    AuthUserFile /etc/apache2/gitweb-htpasswd

    SetEnv GITWEB_CONFIG /etc/gitweb.conf

</Directory>

</IfModule>


추가로 gitweb.conf 파일 내용도 업데이트.

our $projectroot = "/home/git/repositories/";


# directory to use for temp files

our $git_temp = "/tmp";


# target of the home link on top of all pages

#$home_link = $my_uri || "/";


# html text to include at home page

#$home_text = "indextext.html";


# file with project list; by default, simply scan the projectroot dir.

our $projects_list = "/home/git/projects.list";


# stylesheet to use

#@stylesheets = ("static/gitweb.css");


# javascript code for gitweb

#$javascript = "static/gitweb.js";


# logo to use

#$logo = "static/git-logo.png";


# the 'favicon'

#$favicon = "static/git-favicon.png";


# git-diff-tree(1) options to use for generated patches

#@diff_opts = ("-M");

@diff_opts = ();


$feature{'blame'}{'default'} = [1];



저작자 표시 비영리 동일 조건 변경 허락
신고
2015.01.29 11:06

최신 버전이 안받아져서 git에서 다운받아 빌드 시도.


폴더 하나 만들고.. (예..  docker_src)


들어가서 git init 입력.


git clone https://github.com/docker/docker.git


하면 다운 받아짐. 해당 폴더에서 make 하면 빌드 시작.


빌드가 완료되면 docker_src/bundles/1.4.1-dev/binary에 빌드된 파일이 생성됨.


/usr/bin으로 빌드된 파일 이동.


ln -sf /usr/bin/docker-1.4.1-dev /usr/bin/docker  로 대체.


docker version 실행하면 클라이언트 버전은 바뀌었지만, 서버 버전이 안바뀐 것을 확인할 수 있다. 


아쉽게 아래와 같은 에러가 발생함.


FATA[0000] Error response from daemon: client and server don't have same version (client : 1.17, server: 1.12)


docker를 다시 가동해야 함. 일단 기존에 가동중인 docker server를 중지

sudo service docker.io stop

/usr/bin/docker.io를 백업해두고 /usr/bin/docker-1.4.1-dev 를 /usr/bin/docker.io로 변경한다.

그리고 ln -sf /usr/bin/docker.io /usr/bin/docker 를 실행 

이제 서비스를 다시 가동한다.

sudo service docker.io start

다시 docker version을 실행하면 클라, 서버의 버전이 모두 바뀐 것을 확인할 수 있다. 

(* exec 커멘드가 필요해서 해봤음.)




저작자 표시 비영리 동일 조건 변경 허락
신고
2014.04.14 16:34

SVN 속도 문제

개발/경험 2014.04.14 16:34

문서, 코드, 리소스 공유에 SVN을 전반적으로 사용한다. 



현재 SVN 서버에는 30여개의 세션이 붙어서 작업 중인데, 


DISK는 RAID 1+0 으로 구성. 

CPU는 (8 core) 16%

NIC는 10% 미만 

MM는 4.6GB 


이런 정도. 그런데 업데이트 속도는 30분에 3.2MBytes 다운 받음. 


미친... ㅠ_ㅜ


작업자들 아침부터 다들 난리남. 


게다가 이 SVN 서버를 회사 공유로 만들어둔 상태라 세션 강제 정리하기도 힘든 상태.


타팀에서 지난 금요일부터 SVN 정리하느라 몇십기가 되는 데이터들을 올리고 내리는 중이라고.. -_-a  (오전 회의 때 공유 해줬으면 좋을 걸.. 역시 이런건 대화 문제... )


저녁이야 되서야 겨우 양해를 구해 업데이트를 시작했음. 


Git를 사용하면 이 문제를 해결할 수 있을까.. 


SVN을 목적에 맡게 사용하지 못하는 것도 문제인 듯.


돌아버릴 것 같은 월요일 임.

저작자 표시 비영리 동일 조건 변경 허락
신고

'개발/경험' 카테고리의 다른 글

ruby on rails 윈도우 설치  (0) 2014.04.20
Ruby on Rails  (0) 2014.04.16
SVN 속도 문제  (0) 2014.04.14
애자일, xp 등등...  (0) 2014.03.19
git 사용기  (0) 2014.03.18
ofstream 반복 활용시...  (0) 2014.02.24
2014.03.18 12:57

git 사용기

개발/경험 2014.03.18 12:57

github 사용하려는데 private로 설정하니 유료. 얼마 안하지만, 카드 번호 입력하는게 걸려서 포기.


익숙한 code.google.com에서 git 저장소 생성. 어차피 html5 프로젝트라 용량이 별로 필요도 없고... 


tortoise git으로 구글에 접근하려니 억세스 불가. https를 지원하지 않는다고 했던가??


google에 링크되어 있던 git 유틸 다운 받음. 엥? 같은거네.


역시... https 를 지원하지 않거나 libcurl에서 꺼져있다. 는 메세지가 있군. 


구글링!!!


http://stackoverflow.com/questions/19015282/how-do-i-enable-https-support-in-libcurl


(최신 curl은 여기서 !! http://www.confusedbycode.com/curl/#downloads )


를 참고해서 curl의 ssh옵션을 활성화하면 될 줄 알았는데 잘 안되네.


다시 업무 시간. 다시 도전해야겠다. -_-a


저작자 표시 비영리 동일 조건 변경 허락
신고

'개발/경험' 카테고리의 다른 글

SVN 속도 문제  (0) 2014.04.14
애자일, xp 등등...  (0) 2014.03.19
git 사용기  (0) 2014.03.18
ofstream 반복 활용시...  (0) 2014.02.24
Facebook Web 연동 막정리  (0) 2014.02.02
나의 생각을 전달한다는 것.  (0) 2014.01.22


티스토리 툴바