이제 git stash 필요 없어!3분이면 아는 git worktree.

2284 단어 Gitworktree

git worktree는 Stash에 필요 없는 branch와 같습니다.
git2.7부터 사용합니다.
branch 대신worktree라는 폴더를 만듭니다
다음과 같은 이점이 있습니다.
● 별도의 편집기에서 여러 개의 지점을 호출하여 병렬로 수정할 수 있다.
・분기 전환의 개념을 없애고 업무 효율을 향상시켰다.즉git stash의 필요성이 사라진 것이다
다음과 같은 결점이 있다
· 브랜치 제작과 달리 gitignore가 적용되기 때문에 1 설정이 필요합니다.

git worktree가 엔지니어의 생산성을 대폭 향상시켰음을 증명합니다.


1. 먼저 작업 폴더를 만든다.

mkdir workspace; cd workspace

2. 어떤 프로젝트를 만드는가.

react-native init AwesomeProject; cd AwesomeProject

3. 다음 명령을 사용하여 branch와worktree를 함께 만듭니다.

git worktree add -b Foo ../Foo origin/master
새로 제작된 브랜치 명.
./Foo= 새로 제작된 워크트리 이름
origin/master = origin/master는 branch와worktree를 생성합니다.
현황은 다음과 같이 구성된다.
workspace
--AwesomeProject
----.git
--Foo (worktree)
----.git

4. Foo 폴더로 이동하여 git를 사용할 수 있는지 확인합니다.

cd ../Foo; git log;
Foo에서 commiit에서 git push를 만들어 보세요.
이상의 말!!!
실제 업무에서 사용할 때 다음과 같이 어떤 항목만 포함하는 마스터와 그worktree 폴더를 만들면 됩니다.
그때는 마스터를 삭제할 수 없도록 설정하는 것이 좋다.
AwesomeProject
--AwesomeProject (master)
----.git
--Foo (worktree)
----.git
--HotFix (worktree)
----.git
워크 스트리트 사이에서 편해요.git 다음 폴더는 동기화되어야 합니다.
그리고 브랜치는 다른 폴더에서git stash를 사용하지 않아도 돼요.
Stash가 아니라 새 편집기에서 직접 branch를 엽니다.
워크트리를 없애고 싶을 때는 rm-rf Foo입니다.
얼마나 순수하고 혁신적인데.학습 원가는 기본적으로 필요하지 않고 단순히 생산 효율을 높였다.
그냥gitignore에서 제외된 파일은worktree에서 동기화되지 않습니다.

gitignore한테 걸렸어.


맞습니다. git worktree는 gitignore에 적용됩니다.
이런 상황을 피하기 위해, rsync!
git worktree add -b Foo ../Foo master; rsync -a --exclude='.git' ../awesomeProject(コピー元のプロジェクトの名前)/ ../Foo
설명은 local의 마스터에서 Foo라는 branch를 잘라서 Foo라는 폴더에 그 branch를 넣으세요.
rsync는 복잡한cp 명령입니다.
local의 마스터를Foo 폴더에 넣으세요.git 이외의 폴더를 복사합니다.
단점은 30초 정도가 걸린다는 것이다.gitignore 파일의 선택과 복사 방법만 아는 bash 달인이 있다면 메시지를 남겨주세요.
npm를 설치한 사람.
npx kabatree newBranch
그리고 위와 같은 일을 했다.
(이것은 내가 만든 npm 라이브러리다.)
git worktree의 구조를 모르면git와 마스터의.git 봐봐.worktree는 간단한 구조이기 때문에 바로 이해할 수 있습니다.

좋은 웹페이지 즐겨찾기