春风得意马蹄疾 记录技术,分享生活
随笔: 34 分类: 15 评论: 1 阅读: 2,338

在Windows上搭建Git仓库并推送到远程服务器的完整指南

📅 发表于 2026-06-23 16:55:01 👁 阅读 131 次 💬 评论 0

背景

在本地Windows电脑上开发代码,需要将代码推送到自己的Linux服务器上进行版本管理。本文记录了从零开始配置的完整过程及踩坑记录。

一、本地初始化Git仓库

打开Windows命令行(CMD),执行

cd /d D:\xiaojun\code
git init
git add .
git commit -m "Initial commit"

注意: Windows切换盘符必须用 cd /d,不能省略 /d

二、添加远程仓库

git remote add origin git_xiaojun@xiaojun.cn:/home/git_xiaojun/repos/test-project.git

三、推送到远程

git push -u origin master

四、踩坑记录与解决方案

坑1:远程地址格式错误

错误: ssh: Could not resolve hostname ssh

原因: URL格式写成了 ssh://ssh/...,把协议名当成了主机名。

解决: 正确格式为 git_xiaojun@域名:/仓库路径.git

坑2:SSH连接超时

错误: ssh: connect to host xiaojun.cn port 22: Connection timed out

原因: 服务器防火墙未开放22端口,或SSH服务未启动。

解决: 在服务器上检查SSH服务状态,开放防火墙端口。

坑3:仓库路径不正确

错误: does not appear to be a git repository

原因: 远程地址中的路径与服务器上仓库的实际路径不一致。

解决: 先在服务器上用 pwd 确认仓库的绝对路径,再修正远程地址:

bash

git remote set-url origin git_xiaojun@xiaojun.cn:/实际路径/test-project.git

坑4:权限被拒绝

错误: Permission denied, please try again

原因: SSH密码错误,或服务器上仓库目录的所有者不是当前用户。

解决: 在服务器上修改仓库权限:

bash

sudo chown -R git_xiaojun:git_xiaojun /home/git_xiaojun/repos/test-project.git
sudo chmod -R 755 /home/git_xiaojun/repos/test-project.git

坑5:推送被拒绝(历史不相关)

错误: ! [rejected] master -> master (fetch first)

原因: 本地和远程仓库是独立创建的,提交历史不一致。

解决: 拉取时允许合并不相关的历史:

bash

git pull origin master --allow-unrelated-histories
git push -u origin master

五、服务器端准备(提前操作)

推送前需在服务器上创建裸仓库:

bash

ssh git_xiaojun@xiaojun.cn
mkdir -p ~/repos
cd ~/repos
git init --bare test-project.git

总结

搭建Git远程仓库的关键点:

  1. 服务器上先创建裸仓库(git init --bare
  2. 确保远程地址的路径与服务器实际路径完全一致
  3. 确保SSH连接正常、用户有仓库的读写权限
  4. 本地和远程历史不一致时使用 --allow-unrelated-histories

📂 分类:git
评论 (0)
小阿军
技术分享者 · 记录成长的每一步
✨ 特效 ON