err: git push.default Update were rejected because a pushed branch tip is behand remote

本文提供了两种解决Git推送问题的方法:一是通过配置默认推送分支为当前分支;二是通过切换分支并执行Git pull全部更新后再切换回原分支进行Git push。

解决方法一:

  1. git config --global push.default current  

解决方法二:

切换到其他分支,并执行 git pull,全部更新完毕,在切换回原来的分支,再执行git push


func TransferDirectory(client *ssh.Client, localDir, remoteDir string) error { fmt.Println("++++++++++--------------------++++++++++") fmt.Println(localDir) fmt.Println(remoteDir) fmt.Println("++++++++++--------------------++++++++++") sftpClient, err := sftp.NewClient(client) if err != nil { return err } defer sftpClient.Close() // 确保远程目录存在并设置权限 if err := sftpClient.MkdirAll(remoteDir); err != nil { return fmt.Errorf("创建远程目录失败: %v", err) } // 设置远程目录权限为755 chmodCmd := fmt.Sprintf("chmod 755 %s", remoteDir) session, err := client.NewSession() if err != nil { return fmt.Errorf("无法创建SSH会话: %v", err) } defer session.Close() if err := session.Run(chmodCmd); err != nil { return fmt.Errorf("设置目录权限失败: %v", err) } err = filepath.Walk(localDir, func(path string, info os.FileInfo, err error) error { if err != nil { return err } // 计算相对路径 relPath, err := filepath.Rel(localDir, path) if err != nil { return err } // 使用filepath.ToSlash确保路径分隔符统一 relPath = filepath.ToSlash(relPath) remotePath := filepath.Join(remoteDir, relPath) if info.IsDir() { // 创建远程目录 if err := sftpClient.MkdirAll(remotePath); err != nil { return fmt.Errorf("创建远程子目录失败: %v", err) } // 设置远程子目录权限为755 chmodSubDirCmd := fmt.Sprintf("chmod 755 %s", remotePath) if err := session.Run(chmodSubDirCmd); err != nil { return fmt.Errorf("设置子目录权限失败: %v", err) } } else { // 确保文件所在目录存在 remoteFileDir := filepath.Dir(remotePath) if err := sftpClient.MkdirAll(remoteFileDir); err != nil { return fmt.Errorf("创建文件目录失败: %v", err) } // 打开本地文件 localFile, err := os.Open(path) if err != nil { return fmt.Errorf("无法打开本地文件: %v", err) } defer localFile.Close() // 创建远程文件 remoteFile, err := sftpClient.Create(remotePath) if err != nil { return fmt.Errorf("创建远程文件失败: %v", err) } defer remoteFile.Close() // 复制文件内容 if _, err := io.Copy(remoteFile, localFile); err != nil { return fmt.Errorf("文件内容复制失败: %v", err) } } return nil }) return err }remoteDir 我的传参为/root,本意是在root文件夹创建csvfile文件夹 而你给我创建了一个'\root'文件夹 这太蠢了,直接在我的代码中修改并返回给我!!!!!!!!!
最新发布
11-01
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值