ワークツリー



Gitの私のお気に入りの未知の機能の一つは、ワークツリーです.Gitのツールベルトからの一部は、1つのリポジトリで複数のチェックアウト分岐を持つことができます.
これは実際にコードに掘り下げて、Git(Lab - She Hub)または他の選択肢のウェブ機能を使用したくないコードレビューに最適です.
十分な言葉は、どのように動作します.

Gitワークツリー

何ができる
$ tree
project_name/
 |- master/
 |- develop/
 |- feature/
 |   |- ABC-123_implement_death_laser/
 |- hotfix/
     |- ABC-42_solve_climate_crisis/
それぞれのブランチは独自のGitリポジトリですが、すべてのリポジトリメタデータを共有します.

どうやってそこに行くの?
  • プロジェクトフォルダを作成しますmkdir project_name and cd フォルダにcd project_name
  • リポジトリをクローンしますが、いくつかの機能フラグを使用します.git clone --bare GIT_URL .bare
  • このクローンGIT_URL ローカルの隠しフォルダに.bare
  • --bare それで、我々は特定の支店を得ません
  • クリエイト.git ファイルを書いてください.ここで、裸のリポジトリは以下の通りです.
  •    # project_name/.git
       gitdir: ./.bare
    
    現在、我々の倉庫はすべての望ましいメタデータがどこで見つけることができるかについてわかっています
  • 目的の分岐を追加しますgit worktree add develop or git worktree add featre/some_feature . The / 私たちのための自動的に新しいフォルダを作成します.

  • 追加の役に立つもの

    単一の分岐/フォルダを削除する
    二つの可能性
  • 他のフォルダと同じようにフォルダを削除して実行するgit worktree prune その後
  • git worktree remove BRANCH_NAME

  • すべてのワークツリーフォルダを表示する
    git worktree list
    

    リポジトリフォルダの外にブランチフォルダを作成する
    はい.これは本当に可能です.プロジェクトフォルダにパンを持っています./home/lokidev/projects/cookie_bakery .
    しかし、今、あなたは、このCookieBeeのパン屋のフォルダ内にすべきではない巨大なプロジェクトを持っている新しいブランチを持っているが、それは本当に重要であり、いくつかの外部ハードドライブにする必要があります.ここに行く
    git worktree add -b BRANCH_NAME FOLDER
    # e.g.
    git woktreee add -b feature/super_important /media/usb-drive/important
    

    フォルダの名前の変更
    git worktree move SOURCE_FOLDER DESTINATION
    

    よりものすごいGit物?
    Git Toolbarのようなより素晴らしいものが、ありますbisect これは、エラーが導入されたgitの歴史の正確な瞬間を見つけるのに役立ちます.
    もう一つの良い機能は、ファイルと変更のhunkベースの追加/コミットです.
    あなたがこれのより多くを望むならば、ちょっと私に話してください.あなたが私がよりよくすることができるものがあるならば:さらにより良い!

    追加リンク

  • Official Documentation