VS代码上传gitee

VS有本地项目代码了,创建Git存储库点了没反应#(泪) 没搜到解决办法,求佬康康🆘

https://www.bilibili.com/video/BV1hf4y1W7yT?p=1&vd_source=ff999e4c728b7eb49d32d9d75917272e
看视频,我就是这样装的

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7772515
  • 这篇博客你也可以参考下:gitee上传/拉取代码
  • 除此之外, 这篇博客: 代码上传gitee自动同步服务器中的 代码上传gitee自动同步服务器 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    最近因工作需要,做了一个本地代码上传gitee自动同步到服务器的功能,已成功,现将经过汇总如下。

    使用工具:gitee、服务器、gitbash
    

    原理:使用gitee提供的webhook功能,每次push的时候触发webhook,webhook去访问定义好的url所指向的php脚本,php脚本中执行pull,从而完成自动同步到服务器的功能。

    具体实现:
    假定gitee仓库地址为https://gitee.com/username/websocket_test.git,服务器项目地址为/www/wwwroot/test。
    1.保证服务器安装了git,并配置好了user.name和user.email
    2.git clone https://gitee.com/username/websocket_test.git,将gitee上的项目克隆到服务器上,这可以保证服务器上的.git和gitee上的.git保持一致。
    3.修改.git/congit文件,将url修改为url = https://用户名:密码@gitee.com/username/websocket_test.git。这是为了在执行pull操作的时候,gitee自动获取到用户名和密码,而不需要人工手动输入,方便后边脚本执行。
    4.在服务器上添加一个webhook.php文件,这个文件要求外网可以访问到,以便于下一步添加webhook,内容如下:

    namespace Home\Controller;
    use Think\Controller;
    class WebhookController extends Controller{
        public function index(){
            echo 666;
        }
        public function webhook(){
            // echo 777;
            // die;
            //本地路径
            $local = '/www/wwwroot/test';
            //仓库地址
            $remote = 'https://gitee.com/username/websocket_test.git';
             
            //密码
            $password = '123456';
             
            //获取请求参数
            $request = file_get_contents('php://input');
            if (empty($request)) {
                die('request is empty');
            }
             
            //验证密码是否正确
            $data = json_decode($request, true);
            if ($data['password'] != $password) {
                die('password is error');
            }
             
            echo shell_exec("cd {$local} && git pull {$remote} master 2>&1");
            die('done ' . date('Y-m-d H:i:s', time()));
        }
    
    }
    

    分析该文件可以很容易得知,这个文件作用就是在被访问的时候,通过shell_exec方法打开项目地址,然后执行pull操作,真正起作用的一句话就是

    echo shell_exec("cd {$local} && git pull {$remote} master 2>&1");
    

    5.gitee添加webhook,在“仓库-管理-webhook”这个位置进行添加,主要选择触发条件push,填写触发webhook后访问的url,还有密码,以上图代码举例,密码就是123456。
    6.可以尝试本地push了,这个时候一般会发现,webhook被触发,但自动同步并没有成功,这里要特别注意几个点,第一、去掉php禁用函数里边的shell_exec,不然上述代码肯定不生效;第二、webhook访问这个文件是通过www用户,因此有了第7点。
    7.进入服务器/home/www,也就是www用户家目录,vim .git-credentials,内容写

    https://用户名:密码@gitee.com
    

    运行

    git config --global credential.helper store

    vim .gitconfig ,内容写

    [credential]
        helper = store
    

    这一步是为了webhook在通过www用户访问脚本的时候也能自动获得用户名和密码,同时,项目目录/www/wwwroot/test的所有者给www,权限给个755,这样是为了避免出现没有权限被拒绝的错误。
    8.现在再本地执行git push的时候,就可以顺利的同步到服务器啦


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^