(command.CommandList
  children: [
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:repository spids:[15])
          op: Equal
          rhs: 
            {
              (word_part.BracedVarSub
                token: <VSub_Number 1>
                suffix_op: (suffix_op.StringUnary op_id:VTest_QMark arg_word:{(repository)})
                spids: [16 20]
              )
            }
          spids: [15]
        )
      ]
      spids: [15]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:destdir spids:[22])
          op: Equal
          rhs: 
            {
              (word_part.BracedVarSub
                token: <VSub_Number 2>
                suffix_op: (suffix_op.StringUnary op_id:VTest_QMark arg_word:{(destination)})
                spids: [23 27]
              )
            }
          spids: [22]
        )
      ]
      spids: [22]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:head spids:[30])
          op: Equal
          rhs: {(master)}
          spids: [30]
        )
        (assign_pair
          lhs: (lhs_expr.LhsName name:GIT_DIR spids:[33])
          op: Equal
          rhs: (word.EmptyWord)
          spids: [33]
        )
      ]
      spids: [30]
    )
    (command.ForEach
      iter_name: d
      iter_words: [{(DQ ($ VSub_Name '$repository') (/.git))} {(DQ ($ VSub_Name '$repository'))}]
      do_arg_iter: F
      body: 
        (command.DoGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.SimpleCommand
                      words: [{(git)} {(rev-parse)} {(refs/heads/master)}]
                      redirects: [
                        (redir.Redir
                          op: <Redir_Great '>'>
                          fd: 16777215
                          arg_word: {(/dev/null)}
                        )
                        (redir.Redir
                          op: <Redir_GreatAnd '2>&'>
                          fd: 2
                          arg_word: {(1)}
                        )
                      ]
                      more_env: [(env_pair name:GIT_DIR val:{(DQ ($ VSub_Name '$d'))} spids:[55])]
                    )
                  ]
                  action: [
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:GIT_DIR spids:[76])
                          op: Equal
                          rhs: {(DQ ($ VSub_Name '$d'))}
                          spids: [76]
                        )
                      ]
                      spids: [76]
                    )
                    (C {(export)} {(GIT_DIR)})
                    (command.ControlFlow token:<ControlFlow_Break break>)
                  ]
                  spids: [16777215 73]
                )
              ]
              spids: [16777215 90]
            )
          ]
          spids: [50 92]
        )
      spids: [40 16777215]
    )
    (command.If
      arms: [
        (if_arm
          cond: [(C {(test)} {(-z)} {(DQ ($ VSub_Name '$GIT_DIR'))})]
          action: [
            (command.SimpleCommand
              words: [
                {(echo)}
                {
                  (DQ ('Neither ') ($ VSub_Name '$repository') (' nor ') ($ VSub_Name '$repository') 
                    ('/.git is a repository')
                  )
                }
              ]
              redirects: [(redir.Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})]
            )
            (command.ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
          ]
          spids: [16777215 105]
        )
      ]
      spids: [16777215 126]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:GIT_WORK_TREE spids:[129])
          op: Equal
          rhs: 
            {
              (word_part.CommandSubPart
                command_list: (command.CommandList children:[(C {(pwd)})])
                left_token: <Left_CommandSub '$('>
                spids: [130 132]
              )
            }
          spids: [129]
        )
      ]
      spids: [129]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:GIT_INDEX_FILE spids:[134])
          op: Equal
          rhs: 
            {
              (word_part.CommandSubPart
                command_list: (command.CommandList children:[(C {(pwd)})])
                left_token: <Left_CommandSub '$('>
                spids: [135 137]
              ) (/.quick-doc.) ($ VSub_Dollar '$$')
            }
          spids: [134]
        )
      ]
      spids: [134]
    )
    (C {(export)} {(GIT_INDEX_FILE)} {(GIT_WORK_TREE)})
    (C {(rm)} {(-f)} {(DQ ($ VSub_Name '$GIT_INDEX_FILE'))})
    (C {(trap)} {(SQ <'rm -f "$GIT_INDEX_FILE"'>)} {(0)})
    (C {(git)} {(read-tree)} {($ VSub_Name '$head')})
    (C {(git)} {(checkout-index)} {(-a)} {(-f)} 
      {(--prefix) (Lit_Other '=') (DQ ($ VSub_Name '$destdir')) (/)}
    )
    (command.If
      arms: [
        (if_arm
          cond: [(C {(test)} {(-n)} {(DQ ($ VSub_Name '$GZ'))})]
          action: [
            (command.Pipeline
              children: [
                (C {(git)} {(ls-tree)} {(-r)} {(--name-only)} {($ VSub_Name '$head')})
                (C {(xargs)} {(printf)} {(DQ ($ VSub_Name '$destdir') ('/%s') (Lit_Other '\\') (n))})
                (C {(xargs)} {(gzip)} {(-f)})
              ]
              negated: F
            )
          ]
          spids: [16777215 196]
        )
      ]
      spids: [16777215 232]
    )
    (C {(rm)} {(-f)} {(DQ ($ VSub_Name '$GIT_INDEX_FILE'))})
  ]
)