diff --git a/src/git-command-manager.ts b/src/git-command-manager.ts
index 8e42a38..1a8709a 100644
--- a/src/git-command-manager.ts
+++ b/src/git-command-manager.ts
@@ -44,6 +44,7 @@ export interface IGitCommandManager {
   getWorkingDirectory(): string
   init(): Promise<void>
   isDetached(): Promise<boolean>
+  lfsCheckout(): Promise<void>
   lfsFetch(ref: string): Promise<void>
   lfsInstall(): Promise<void>
   log1(format?: string): Promise<string>
@@ -340,6 +341,10 @@ class GitCommandManager {
     return !output.stdout.trim().startsWith('refs/heads/')
   }
 
+  async lfsCheckout(): Promise<void> {
+    await this.execGit(['lfs', 'checkout'])
+  }
+
   async lfsFetch(ref: string): Promise<void> {
     const args = ['lfs', 'fetch', 'origin', ref]
 
diff --git a/src/git-source-provider.ts b/src/git-source-provider.ts
index 2d35138..2ceca2f 100644
--- a/src/git-source-provider.ts
+++ b/src/git-source-provider.ts
@@ -232,6 +232,11 @@ export async function getSource(settings: IGitSourceSettings): Promise<void> {
     await git.checkout(checkoutInfo.ref, checkoutInfo.startPoint)
     core.endGroup()
 
+    // LFS checkout
+    core.startGroup('Checking out LFS objects')
+    await git.lfsCheckout()
+    core.endGroup()
+
     // Submodules
     if (settings.submodules) {
       // Temporarily override global config