218 lines
5.8 KiB
Markdown
218 lines
5.8 KiB
Markdown
# 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 权限)。
|