많은 지점이있는 프로젝트가 있습니다.
로 전환하지 않고 여러 지점에서 동시에 작업하고 싶습니다 git checkout.
전체 저장소를 다른 곳에 복사하는 것 외에 내가 할 수있는 방법이 있습니까?
git worktree add <path> [<branch>](Git 2.5 rc2)
많은 지점이있는 프로젝트가 있습니다.
로 전환하지 않고 여러 지점에서 동시에 작업하고 싶습니다 git checkout.
전체 저장소를 다른 곳에 복사하는 것 외에 내가 할 수있는 방법이 있습니까?
git worktree add <path> [<branch>](Git 2.5 rc2)
답변:
Git 2.5 이상 (2015 년 2 분기)은이 기능을 지원합니다!
git repo가있는 경우 cool-appcd to root ( cd cool-app)를 실행하십시오 git worktree add ../cool-app-feature-A feature/A. 이것은 feature/A자신의 새로운 전용 디렉토리에서 지점 을 체크 아웃합니다 cool-app-feature-A.
이는 contrib/workdir/git-new-workdir"연결된"작업 트리가 실제로 기본 repo 새 $GIT_DIR/worktrees폴더에 기록되는보다 강력한 메커니즘으로 이전 스크립트를 대체 합니다 (따라서 Windows를 포함한 모든 OS에서 작동).
다시 한 번, repo를 (와 같은 폴더에 /path/to/myrepo) 복제하면 다른 독립 경로 ( /path/to/br1, /path/to/br2) 에서 다른 브랜치에 대한 작업 트리를 추가 할 수 있지만 작업 트리는 기본 리포지토리 기록에 연결되어 --git-dir있습니다 (더 이상 옵션 을 사용할 필요가 없음 )
" Git을 사용하는 다중 작업 디렉토리? "를 참조하십시오 .
작업 트리를 만든 후에는 Git 2.17+, 2018 년 2 분기 로 이동하거나 제거 할 수 있습니다 .
$ GIT_SRC_DIR / contrib / workdir / git-new-workdir을 살펴보십시오 .
심볼릭 링크를 사용하여 기존 저장소를 가리키는 작업 디렉토리를 작성하는 간단한 스크립트 이를 통해 서로 다른 작업 디렉토리에 서로 다른 브랜치를 가질 수 있지만 모두 동일한 저장소에 있습니다.
내 작은 스크립트를 제안합니다 http://www.redhotchilipython.com/en_posts/2013-02-01-clone-per-feature.html
git clone을 수행하고 구성을 대체합니다 (원래의 repo를 "보고", 따라서 pull / push는 "main"repo로 이동합니다). 그러나 실제 부트 스트랩에서 추상화를 제공 할 정도로 간단합니다.
Git은 동시에 여러 작업 트리를 지원합니다. 자세한 내용은 다음을 참조하십시오.
ID가있는 여러 작업 트리를 지원하는 것은 매우 어려운 일입니다. 예를 들어, 이것은 워크 트리를 지원하기위한 JGet (eclipse ID) 의 개선 요청 입니다.
따라서 많은 문제가있는 프로젝트를 수동으로 관리하거나 (명령 줄) IDE에서 단일 작업 트리로 작업해야합니다.
정말 힘내 만 가지고 지원하는 하나의 저장소 디렉토리에 저장소 데이터의 작업 복사본을.
서로 다른 두 개의 작업 사본이있는 동일한 저장소에 커미트 / 풀링하려는 경우 베어 저장소를 작성 하여 두 개의 작업 사본으로 복제 할 수 있습니다 .
무언가를 마치면 "메인" 기본 저장소로 푸시하면 됩니다.
몇 가지 힌트 :
man git-clone
git clone --bare
git-new-workdir.에 대한 답변을 참조하십시오 .