diff --git a/src/git-command-manager.ts b/src/git-command-manager.ts
index e684dba..cf6549e 100644
--- a/src/git-command-manager.ts
+++ b/src/git-command-manager.ts
@@ -39,6 +39,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>
@@ -319,6 +320,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 8f9d63f..5086fd4 100644
--- a/src/git-source-provider.ts
+++ b/src/git-source-provider.ts
@@ -211,6 +211,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