두 지점에서 동시에 작업하는 자식


168

많은 지점이있는 프로젝트가 있습니다.

로 전환하지 않고 여러 지점에서 동시에 작업하고 싶습니다 git checkout.

전체 저장소를 다른 곳에 복사하는 것 외에 내가 할 수있는 방법이 있습니까?



1
Git 2.5 이상 (2015 년 2 분기)은 새로운 명령으로 공식적으로이를 지원할 것 git checkout --to=<path>입니다. 아래 내 답변을 참조하십시오 .
VonC

2
실제로, 명령은 git worktree add <path> [<branch>](Git 2.5 rc2)
VonC

답변:


156

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 분기 로 이동하거나 제거 할 수 있습니다 .


2
2.5.x의도 창문, 지금은 권장 버전이기 때문에 이것은, 새로운 허용 대답해야 i.imgur.com/oQvUhVl.png git-scm.com/download/win
RAnders00

40

$ GIT_SRC_DIR / contrib / workdir / git-new-workdir을 살펴보십시오 .

심볼릭 링크를 사용하여 기존 저장소를 가리키는 작업 디렉토리를 작성하는 간단한 스크립트 이를 통해 서로 다른 작업 디렉토리에 서로 다른 브랜치를 가질 수 있지만 모두 동일한 저장소에 있습니다.



2
나는 이것이 오래되었다는 것을 알고 있지만 설명을 해 주시겠습니까?
dav_i

@dav_i :처럼 ?
Stefan Näwe

@ StefanNäwe Ah 너무 혼란스러워-너무 이른 아침에 ... 링크로 답변을 업데이트했습니다.
dav_i


0

우리 친구 VonC 가 5 개월 전에 말했듯이, 이제 버전 2.5.x 이후에는 새로운 기능이 있습니다. 자식 작업 트리 .


위의 답변 에서 5 개월 전에 언급 한 것과 동일하지 않습니까?
VonC

작전 지금 나는 끔찍한 느낌입니다. 나는 그것에 대한 적절한주의를 기울이지 않았습니다. 내 잘못이야.

0

Git은 동시에 여러 작업 트리를 지원합니다. 자세한 내용은 다음을 참조하십시오.

ID가있는 여러 작업 트리를 지원하는 것은 매우 어려운 일입니다. 예를 들어, 이것은 워크 트리를 지원하기위한 JGet (eclipse ID) 의 개선 요청 입니다.

따라서 많은 문제가있는 프로젝트를 수동으로 관리하거나 (명령 줄) IDE에서 단일 작업 트리로 작업해야합니다.


현재로서는이 답변이 올바르지 않습니다. 답변을 업데이트하십시오.
narendra-choudhary 5

-2

정말 힘내 만 가지고 지원하는 하나의 저장소 디렉토리에 저장소 데이터의 작업 복사본을.

서로 다른 두 개의 작업 사본이있는 동일한 저장소에 커미트 / 풀링하려는 경우 베어 저장소를 작성 하여 두 개의 작업 사본으로 복제 할 수 있습니다 .

무언가를 마치면 "메인" 기본 저장소로 푸시하면 됩니다.

몇 가지 힌트 :

man git-clone

git clone --bare


3
"Git은 저장소 데이터의 작업 복사본 하나만 지원합니다" -1 사실이 아닙니다 git-new-workdir.에 대한 답변을 참조하십시오 .
썰매 시간

좋은 생각입니다. 두 번 복제하십시오.
Serge Vinogradoff
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.