From 4f606ad6c6650cb023e5f39df5e1d4257088f4fb Mon Sep 17 00:00:00 2001 From: Hongru Date: Sun, 19 Oct 2025 13:46:57 +0800 Subject: [PATCH] Initial commit --- README.md | 216 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 216 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..e5f4f86 --- /dev/null +++ b/README.md @@ -0,0 +1,216 @@ +# Git 仓库使用方法(Windows PowerShell) + +本文档说明如何在 Windows PowerShell 下初始化本地仓库、首次推送到远端、以及日常 push / pull 操作。 + +远端地址(SSH): + +ssh://git@182.148.54.29:25672/StudyGroup/GitDemo.git + +注意:这是一个 SSH 地址且使用了非默认端口 25672。请确保你的电脑已配置 SSH 公钥并允许通过该端口访问目标服务器。 + +## 前置准备 + +- 已安装 Git for Windows +- 初次使用 Git 建议先设置用户名和邮箱(仅需一次): + +```powershell +git config --global user.name "你的名字" +git config --global user.email "你的邮箱@example.com" +``` + +- 如果尚未配置 SSH 密钥(可选但推荐): + +```powershell +ssh-keygen -t ed25519 -C "你的邮箱@example.com" +# 按提示回车;随后将生成的公钥内容(~/.ssh/id_ed25519.pub)添加到 Git 服务器账号 +``` + +## 一、在空文件夹中初始化并首次推送 + +以下步骤等价于你提供的命令(将 Linux 的 touch 替换为 PowerShell 的 New-Item): + +```powershell +# 1) 创建 README.md 文件(如已存在可省略) +New-Item -ItemType File README.md -Force + +# 2) 初始化本地仓库 +git init + +# 3) 将文件加入暂存区并提交 +git add README.md +git commit -m "first commit" + +# 4) 关联远端 +git remote add origin ssh://git@182.148.54.29:25672/StudyGroup/GitDemo.git + +# 5) 首次推送到 master 分支,并建立上游跟踪关系 +# 如果你本地默认分支叫 main,可先将其改名为 master: +# git branch -M master +git push -u origin master +``` + +说明: + +- `-u` 会把本地分支与远端同名分支关联,之后可直接使用 `git push` 和 `git pull`。 +- 如果你的团队使用 `main` 而非 `master`,可将上述命令中的 `master` 替换为 `main`。 + +## 二、从远端克隆已有仓库 + +```powershell +git clone ssh://git@182.148.54.29:25672/StudyGroup/GitDemo.git +cd GitDemo +``` + +## 三、日常开发:提交并推送(push) + +```powershell +# 查看改动状态(可选) +git status + +# 将改动加入暂存区(当前目录所有改动) +git add -A + +# 提交 +git commit -m "你的提交说明" + +# 推送到远端(已建立上游后可省略分支名) +git push +# 或者显式:git push origin master +``` + +## 四、获取远端更新(pull) + +```powershell +# 从跟踪的上游分支拉取并自动合并 +git pull + +# 或显式指定分支(例如 master) +# git pull origin master +``` + +建议:团队协作时可优先使用 rebase 以保持线性历史(按需): + +```powershell +git pull --rebase +``` + +## 五、分支协作(可选) + +```powershell +# 新建并切换到功能分支 +git checkout -b feature/my-change + +# 提交并首次推送到远端,同时建立跟踪 +git push -u origin feature/my-change + +# 回到主分支并更新 +git checkout master +git pull --rebase +``` + +## 六、常见问题 + +- 首次连接服务器出现主机指纹确认:按提示输入 `yes` 即可建立信任。 +- 推送被拒(远端有你本地没有的提交): + +```powershell +git pull --rebase +git push +``` + +- 认证失败(Permission denied):检查 SSH 公钥是否已添加到服务器账号,或是否能访问端口 25672。 +- 本地默认分支是 `main` 而远端使用 `master`:执行 `git branch -M master` 后再推送;反之同理。 + +—— + +如需进一步自动化或团队规范(提交信息规范、分支命名、保护分支等),可以在此 README 中补充团队约定。 + +## 七、SSH 密钥生成与获取(Windows PowerShell) + +以下步骤帮助你在本地生成 SSH 密钥、复制公钥并配置到 Git 服务器,适配本仓库的非默认端口 25672。 + +### 1) 生成 SSH 密钥 + +```powershell +ssh-keygen -t ed25519 -C "你的邮箱@example.com" +# 默认会生成: +# 私钥: %USERPROFILE%\.ssh\id_ed25519 +# 公钥: %USERPROFILE%\.ssh\id_ed25519.pub +# 建议设置一个 passphrase(更安全)。 +``` + +如果系统较旧不支持 ed25519,可退而求其次使用 rsa: + +```powershell +ssh-keygen -t rsa -b 4096 -C "你的邮箱@example.com" +``` + +### 2) 查看并复制公钥内容 + +```powershell +Get-Content $env:USERPROFILE\.ssh\id_ed25519.pub + +# 复制到剪贴板(推荐,PowerShell 5+ 可用) +Get-Content $env:USERPROFILE\.ssh\id_ed25519.pub | Set-Clipboard +``` + +然后将公钥内容粘贴到 Git 服务器的 SSH 公钥设置页面。 + +### 3) 启动 ssh-agent 并添加私钥(可选但推荐) + +```powershell +# 启动 ssh-agent 服务(首次) +Get-Service ssh-agent | Set-Service -StartupType Automatic +Start-Service ssh-agent + +# 将私钥加入 agent(每次新设备/新密钥时执行一次) +ssh-add $env:USERPROFILE\.ssh\id_ed25519 +``` + +### 4) 为非默认端口配置 SSH 别名(简化地址,可选) + +本仓库的 SSH 地址使用端口 25672。为了避免每次写完整 URL,可在 `%USERPROFILE%\\.ssh\\config` 中增加一段 Host 配置: + +```text +Host git-demo + HostName 182.148.54.29 + Port 25672 + User git +``` + +如果没有该文件,可以新建一个: + +```powershell +New-Item -ItemType File $env:USERPROFILE\.ssh\config -Force | Out-Null +notepad $env:USERPROFILE\.ssh\config +``` + +配置完后,即可将远端地址由: + +```text +ssh://git@182.148.54.29:25672/StudyGroup/GitDemo.git +``` + +简化为: + +```text +git-demo:StudyGroup/GitDemo.git +``` + +并执行: + +```powershell +git remote set-url origin git-demo:StudyGroup/GitDemo.git +``` + +### 5) 测试 SSH 连接 + +```powershell +# 使用完整地址测试(适合未配置 Host 时) +ssh -p 25672 git@182.148.54.29 + +# 或使用 Host 别名(若已按上文配置) +ssh git-demo +``` + +首次连接会提示确认主机指纹,输入 `yes` 即可。若显示欢迎信息或权限受限提示即表示连通成功(无需 shell 权限)。