반응형

출처 : http://bitflop.com/tutorials/how-to-create-a-new-and-empty-branch-in-git.html

Git에서 새롭고 비어 있는 branch를 만드는 방법

많은 코딩 프로젝트에서 코드는 하나의 저장소에 있고 문서는 다른 저장소에 있습니다.

만약 프로젝트가 데이터베이스를 backend로 사용하는 웹 어플리케이션이면 SQL의 백업은 다른 저장소에 있을 것입니다.

Git에서는 하나의 저장소에 모든 것을 가지고 있을 수 있고 branch로 이것들을 분리할 수 있습니다.

보통 branch들은 디렉터리에서 파일을 공유하지만 Git에서는 빈 branch들을 만들 수 있습니다.

당신은 다음처럼 빈 branch를 만들 수 있습니다.

$ git checkout --orphan NEWBRANCH

--orphan 은 새로운 branch를 만드는 데 어떤 commit도 없이 시작합니다. 위의 명령을 실행하면 당신은 새로 만든 "NEWBRANCH" branch에서 작업중에 있는 상태가 됩니다. 이 상태에서 첫 번째 commit을 생성하면 조상이 없는 새로운 history로 시작하게 됩니다.

--orphan 명령은 원래 branch와 비슷한 새로운 history 트리를 생성하는 데 편리하도록 하기 위해 인덱스와 working tree 파일들이 영향을 받지 않도록 합니다.

당신은 원래 branch에서 아무 것도 하지 않은 새롭고 비어 있는 branch를 생성하기를 원하기 때문에, 새로운 작업 디렉터리에서 모든 파일을 삭제할 수 있습니다.

$ git rm -rf .

이제 당신은 파일들을 추가하기 시작하고 commit함으로써 자체 branch에 있을 수 있게 합니다. 만약 commit 로그를 본다면, 원래 log와 분리된 commit log를 보게 될 것입니다.

checkout 명령을 사용하여 원래 branch로 돌아가거나 다른 branch로 이동이 가능합니다.

$ git checkout master ( master branch로 돌아가기 )

$ git checkout NEWBRANCH ( 새롭게 분리된 branch로 돌아가기 )

당신은 --orphan 옵션을 사용하려면 git 1.7.2 이상의 버젼이 필요합니다.

궁금하신 점이나 수정사항이 있으시면 댓글을 남겨 주세요.


반응형
반응형

출처 : http://stackoverflow.com/questions/1282639/switch-git-branch-without-files-checkout

Git: 파일 checkout 없이 git branch 변경하기

= working area 변경 없이 git branch 변경하기

git에서 모든 파일을 checkout하지 않고 다른 브랜치로 변경하는 것이 가능한가요? 저는 branch를 변경한 후 모든 파일을 삭제하고 재 생성한뒤 commit하고 원래 branch를 다시 되돌렸습니다. 그리고 파일을 checkout하는데 시간이 너무 많이 걸립니다. (14000개 정도 파일이 있고 오래 걸립니다.)

분명히 하기 위해:

저는 github에 문서를 업로드 하였습니다.

저는 gh-pages branch를 가진 보관소(repository)가 있습니다. 저는 로컬 컴퓨터에서 문서를 재생성하여 그 파일들을 보관소 디렉터리에 복사하고 commit하고 github에 push하였습니다. 하지만 저는 로컬 컴퓨터에 문서의 복사본이 2개가 있기 때문에 내키지는 않습니다. 그리고 저는 'empty' branch를 만들기로 하고 'empty' 브랜치로 이동한 뒤 파일을 모두 삭제하였습니다. 하지만 원래 branch로 되돌아 오는데 오래 걸립니다. 그래서 이 질문을 합니다.

저는 gh-pages branch는 남기고 파일을 지울 수 있는 방법을 알고 싶지만 dirty working tree들을 남기고 싶지는 않습니다.

----

7 개의 답변 중 1개의 답변만 추려냄.

옙. 다음처럼 하시면 됩니다.

git symbolic-ref HEAD refs/heads/otherbranch
역자 주 : otherbranch는 변경하고자 하는 branch명입니다.

만약 이 branch로 commit할 필요가 있다면 해당 index를 리셋하길 원하시면 다음처럼 하시면 됩니다. 그렇지 않으면 마지막에 checkout된 branch를 기반으로 commit하여 마무리하시면 됩니다.
git reset


반응형

'Git' 카테고리의 다른 글

git log  (0) 2015.08.31
Git에서 새롭고 비어 있는 branch를 만드는 방법  (0) 2015.07.17
잃어버린 commit들 복구하기.  (0) 2015.01.22
Git: branch 포인터를 특정 commit으로 이동하게 하기.  (0) 2015.01.14
git config  (2) 2014.11.14
반응형

출처 : http://stackoverflow.com/questions/5471174/git-move-branch-pointer-to-different-commit

Git: branch 포인터를 특정 commit으로 이동하게 하기.

check-out된 branch의 포인터를 이동하기 위해 git reset --hard 명령을 사용할 수 있습니다. 하지만 check-out되지 않은 branch의 포인터를 다른 commit을 가리키도록 이동하는 방법을 알고 싶습니다. (기존에 추적중인 원격 branch같은 다른 정보들은 유지되어야 합니다.)


3 개의 답변 중 1개의 답변만 추려냄.

git branch -f <branch-name> [<new-tip-commit>]

만약 new-tip-commit 이 생략되면 기본적으로 현재 commit을 가리킵니다.

반응형

'Git' 카테고리의 다른 글

git log  (0) 2015.08.31
Git에서 새롭고 비어 있는 branch를 만드는 방법  (0) 2015.07.17
Git: 파일 checkout 없이 git branch 변경하기  (0) 2015.03.18
잃어버린 commit들 복구하기.  (0) 2015.01.22
git config  (2) 2014.11.14

+ Recent posts