2016-04-05 20 views
6

La versione più recente di IntelliJ dice che supporta le git worktrees, ma non riesco a trovarlo da nessuna parte che dice come usarlo. Mi aspettavo di vedere una voce nel popup di Git Branches in basso a destra, ma non la vedo lì.Come si usano git worktrees in IntelliJ IDEA 2016.1?

anche io non vedo nessun descrizioni in:
Blog post announcing the feature
What's new video

IntelliJ aiuto e googling erano anche inutile

sto usando Git versione 2.7.2.0, worktrees erano stati introdotti in 2.5

+0

Può navigare in worktree se lo si crea manualmente con il comando 'git worktree add ...'? – max630

+0

secondo https://youtrack.jetbrains.com/issueMobile/IDEA-143404 non è ancora risolto, forse dovresti tenerlo traccia per ulteriori informazioni – max630

risposta

7

Per quanto posso dire, "supporto" significa che quando si apre un albero di lavoro in IntelliJ, tutte le funzioni VCS funzionano correttamente. In base ai commenti nel collegamento Youtrack fornito da max630, non è possibile visualizzare le differenze, visualizzare la cronologia o eseguire il commit delle modifiche prima del 2016.1.

Con 2016.1, tuttavia, è possibile aprire il worktree come nuovo progetto ed eseguire tutte le operazioni VCS tramite IntelliJ.

Sarebbe bello avere le impostazioni di progetto condivise per quelli di noi che .gitignore loro, ma che non sembra essere supportato attualmente.

Sono stato con il seguente flusso di lavoro di recente con successo:

  1. git worktree add ../hotfix hotfix/1.2.3
  2. File -> Open in IntelliJ
  3. copiare manualmente tutti i Run configurazioni verso la nuova directory .idea (se necessario)
0

Il motivo più probabile per ottenere questo risultato è che git worktree add utilizza i percorsi assoluti per impostazione predefinita, quindi se si esegue da un bash (Git per Windows' o WSL), il percorso non sarà valida sulle finestre git:

C:\code\worktree-repo>git status fatal: Not a git repository: /mnt/c/code/original-repo/.git/worktrees/worktree-repo

È possibile risolvere questo problema aggiornando il percorso nel file worktree .git (non una directory ! per worktrees) sia relativo:

C:\code\worktree-repo>type .git gitdir: ../original-repo/.git/worktrees/worktree-repo

occorre inoltre aggiornare .git/worktrees/worktree-repo/gitdir di essere parente così finestre git nel repository originale sa come trovare il worktree, ma che è meno importante (per quanto ne so, previene git worktree prune da lasciar cadere e dal controllo della stessa filiale nel repository originale)