is there a way i can re spawn at my first checkpoint not my last checkpoint once i finish the game?

im just trying to make my character re spawn at the start of my game once i finish it pretty much like if you got to the end of the part of the game that your doing and you want to do it again and you start at the beginning of that thing not where the last checkpoint was

When u finished the game - set the respawn position to initial position.

how and if you need too see my code to tell me how here it is
how do i do that tho if you need to see my scripts to tel me here it is

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class GameMaster : MonoBehaviour
{
    private static GameMaster instance;
    public Vector2 lastCheckPointPos;
    void Awake()
    {
        if (instance == null)
        {
            instance = this;
            DontDestroyOnLoad(instance);
        }
        else
        {
            Destroy(gameObject);
        }
    }
}
 
[Code=CSharp]
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Checkpoint : MonoBehaviour
{
    private GameMaster gm;
    private playerHitpoint ph;
    // Start is called before the first frame update
    void Start()
    {
        gm = GameObject.FindGameObjectWithTag("GM").GetComponent<GameMaster>();
        ph = GameObject.FindGameObjectWithTag("Player").GetComponent<playerHitpoint>();
    }
    void OnTriggerEnter2D(Collider2D other)
    {
        if (other.CompareTag("Player"))
        {
            gm.lastCheckPointPos = transform.position;
        }
    }
}
 
[Code=CSharp]
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
public class PlayerPos : MonoBehaviour
{
    private GameMaster gm;
    private playerHitpoint ph;
    // Start is called before the first frame update
    void Start()
    {
        gm = GameObject.FindGameObjectWithTag("GM").GetComponent<GameMaster>();
        transform.position = gm.lastCheckPointPos;
    }
    // Update is called once per frame
    void Update()
    {
        ph = GameObject.FindGameObjectWithTag("Player").GetComponent<playerHitpoint>();
        if (ph.hitPoints <= 0)
        {
            SceneManager.LoadScene("scenelose");
        }
    }
}