Files
2025-10-19 13:49:53 +08:00

218 lines
5.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Git 仓库使用方法(Windows PowerShell
本文档说明如何在 Windows PowerShell 下初始化本地仓库、首次推送到远端、以及日常 push / pull 操作。
远端地址(SSH):
ssh://git@182.148.54.29:25672/StudyGroup/GitDemo.git
> ATTENTION 1"GitDemo.git"为仓库名称,在其他地方使用时请根据需要替换为相应仓库名。
> ATTENTION 2:这是一个 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 权限)。