diff --git a/modules/git/git.go b/modules/git/git.go
index 5ace1dfb56..3281e592b4 100644
--- a/modules/git/git.go
+++ b/modules/git/git.go
@@ -34,7 +34,8 @@ var (
 	DefaultContext context.Context
 
 	// SupportProcReceive version >= 2.29.0
-	SupportProcReceive bool
+	SupportProcReceive  bool
+	InvertedGitFlushEnv bool // 2.43.1
 
 	gitVersion *version.Version
 )
@@ -186,6 +187,8 @@ func InitFull(ctx context.Context) (err error) {
 	}
 	SupportProcReceive = CheckGitVersionAtLeast("2.29") == nil
 
+	InvertedGitFlushEnv = CheckGitVersionEqual("2.43.1") == nil
+
 	if setting.LFS.StartServer {
 		if CheckGitVersionAtLeast("2.1.2") != nil {
 			return errors.New("LFS server support requires Git >= 2.1.2")
@@ -314,6 +317,21 @@ func CheckGitVersionAtLeast(atLeast string) error {
 	return nil
 }
 
+// CheckGitVersionEqual checks if the git version is equal to the constraint version.
+func CheckGitVersionEqual(equal string) error {
+	if _, err := loadGitVersion(); err != nil {
+		return err
+	}
+	atLeastVersion, err := version.NewVersion(equal)
+	if err != nil {
+		return err
+	}
+	if !gitVersion.Equal(atLeastVersion) {
+		return fmt.Errorf("installed git binary version %s is not equal to %s", gitVersion.Original(), equal)
+	}
+	return nil
+}
+
 func configSet(key, value string) error {
 	stdout, _, err := NewCommand(DefaultContext, "config", "--global", "--get").AddDynamicArguments(key).RunStdString(nil)
 	if err != nil && !err.IsExitCode(1) {
diff --git a/modules/git/repo_attribute.go b/modules/git/repo_attribute.go
index 2b34f117f7..c482ad1c98 100644
--- a/modules/git/repo_attribute.go
+++ b/modules/git/repo_attribute.go
@@ -133,7 +133,13 @@ func (c *CheckAttributeReader) Init(ctx context.Context) error {
 		c.env = append(c.env, "GIT_WORK_TREE="+c.WorkTree)
 	}
 
-	c.env = append(c.env, "GIT_FLUSH=1")
+	// Version 2.43.1 has a bug where the behavior of `GIT_FLUSH` is flipped.
+	// Ref: https://lore.kernel.org/git/CABn0oJvg3M_kBW-u=j3QhKnO=6QOzk-YFTgonYw_UvFS1NTX4g@mail.gmail.com
+	if InvertedGitFlushEnv {
+		c.env = append(c.env, "GIT_FLUSH=0")
+	} else {
+		c.env = append(c.env, "GIT_FLUSH=1")
+	}
 
 	c.cmd.AddDynamicArguments(c.Attributes...)