diff --git a/app/models/repository.rb b/app/models/repository.rb
index c4bdc84348ea0ef07361b085a74be1669afb5554..4e3e70192abafdd9cb23f1f7541079c2c4cdb5d5 100644
--- a/app/models/repository.rb
+++ b/app/models/repository.rb
@@ -1121,6 +1121,8 @@ class Repository
     fetch_ref(path_to_repo, ref, ref_path)
   end
 
+  # Whenever `source_branch` is passed, if `branch` doesn't exist, it would
+  # be created from `source_branch`.
   def update_branch_with_hooks(current_user, branch, source_branch: nil)
     update_autocrlf_option
 
diff --git a/app/services/files/base_service.rb b/app/services/files/base_service.rb
index fd62246eddbafb1d260650d801ee90e8ca4d2040..8689c83d40eb1b2c97b6edbaf4d1a1a65b5d0196 100644
--- a/app/services/files/base_service.rb
+++ b/app/services/files/base_service.rb
@@ -75,6 +75,9 @@ module Files
       validate_target_branch
 
       if @source_project != project
+        # Make sure we have the source_branch in target project,
+        # and use source_branch as target_branch directly to avoid
+        # unnecessary source branch in target project.
         @project.fetch_ref(@source_project, @target_branch, @source_branch)
       end
     end