checkout (Capistrano::Deploy::SCM::Git)

    # File lib/capistrano/recipes/deploy/scm/git.rb, line 132
            def checkout(revision, destination)
              git    = command
              remote = origin

              args = []
              args << "-o #{remote}" unless remote == 'origin'
              if depth = variable(:git_shallow_clone)
                args << "--depth #{depth}"
              end

              execute = []
              execute << "#{git} clone #{verbose} #{args.join(' ')} #{variable(:repository)} #{destination}"

              # checkout into a local branch rather than a detached HEAD
              execute << "cd #{destination} && #{git} checkout #{verbose} -b deploy #{revision}"

              if variable(:git_enable_submodules)
                execute << "#{git} submodule #{verbose} init"
                execute << "#{git} submodule #{verbose} sync"
                execute << "#{git} submodule #{verbose} update --recursive"
              end

              execute.join(" && ")
            end