GrabBag/git使用说明.md

149 lines
4.2 KiB
Markdown
Raw 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 使用说明
## 1. 为什么需要在 WSL 中使用 Git
本项目包含 Linux 符号链接文件(如 `SDK/OpenCV320/Arm/aarch64/``SDK/OpenCV480/Arm/aarch64/lib/` 目录下的 `.so` 文件),这些符号链接在 Windows 原生环境下无法正确处理。
**原因:**
- Windows 的符号链接与 Linux 的符号链接格式不兼容
- 在 Windows 下使用 Git 操作这些文件会导致符号链接被破坏或转换为普通文件
- WSL (Windows Subsystem for Linux) 可以正确处理 Linux 符号链接
**建议:**
- 所有 Git 操作clone、pull、push、commit 等)都应在 WSL 环境中进行
- 代码编辑和编译可以在 Windows 下进行,但版本控制操作需要在 WSL 中完成
## 2. Ubuntu 下使用 Git 所需安装的软件
### 基础安装
```bash
# 更新软件包列表
sudo apt update
# 安装 Git
sudo apt install git
# 验证安装
git --version
```
### 配置 Git 用户信息
```bash
# 设置用户名
git config --global user.name "你的用户名"
# 设置邮箱
git config --global user.email "你的邮箱@example.com"
# 查看配置
git config --list
```
### 可选工具安装
```bash
# Git 图形化界面工具
sudo apt install gitk git-gui
# Git 凭证存储(避免重复输入密码)
sudo apt install git-credential-manager
# 或使用缓存方式存储凭证
git config --global credential.helper cache
git config --global credential.helper 'cache --timeout=3600'
```
## 3. Git 管理常用命令
### 仓库操作
| 命令 | 说明 |
|------|------|
| `git clone <url>` | 克隆远程仓库 |
| `git init` | 初始化本地仓库 |
| `git remote -v` | 查看远程仓库地址 |
| `git remote add origin <url>` | 添加远程仓库 |
### 状态查看
| 命令 | 说明 |
|------|------|
| `git status` | 查看工作区状态 |
| `git log` | 查看提交历史 |
| `git log --oneline` | 查看简洁提交历史 |
| `git log --graph` | 图形化显示提交历史 |
| `git diff` | 查看未暂存的修改 |
| `git diff --staged` | 查看已暂存的修改 |
### 文件操作
| 命令 | 说明 |
|------|------|
| `git add <file>` | 添加文件到暂存区 |
| `git add .` | 添加所有修改到暂存区 |
| `git rm <file>` | 删除文件并暂存 |
| `git mv <old> <new>` | 重命名/移动文件 |
| `git checkout -- <file>` | 撤销工作区修改 |
| `git reset HEAD <file>` | 取消暂存 |
### 提交操作
| 命令 | 说明 |
|------|------|
| `git commit -m "提交信息"` | 提交到本地仓库 |
| `git commit -am "提交信息"` | 添加并提交(仅已跟踪文件) |
| `git commit --amend` | 修改最后一次提交 |
### 分支操作
| 命令 | 说明 |
|------|------|
| `git branch` | 查看本地分支 |
| `git branch -a` | 查看所有分支(含远程) |
| `git branch <name>` | 创建分支 |
| `git checkout <branch>` | 切换分支 |
| `git checkout -b <name>` | 创建并切换分支 |
| `git merge <branch>` | 合并分支到当前分支 |
| `git branch -d <name>` | 删除分支 |
### 远程同步
| 命令 | 说明 |
|------|------|
| `git fetch` | 获取远程更新(不合并) |
| `git pull` | 拉取并合并远程更新 |
| `git push` | 推送到远程仓库 |
| `git push -u origin <branch>` | 推送并设置上游分支 |
| `git push origin --delete <branch>` | 删除远程分支 |
### 撤销与回退
| 命令 | 说明 |
|------|------|
| `git reset --soft HEAD~1` | 撤销最后一次提交(保留修改在暂存区) |
| `git reset --mixed HEAD~1` | 撤销最后一次提交(保留修改在工作区) |
| `git reset --hard HEAD~1` | 撤销最后一次提交(丢弃所有修改) |
| `git revert <commit>` | 创建新提交来撤销指定提交 |
### 暂存工作区
| 命令 | 说明 |
|------|------|
| `git stash` | 暂存当前工作区 |
| `git stash list` | 查看暂存列表 |
| `git stash pop` | 恢复并删除暂存 |
| `git stash apply` | 恢复暂存(不删除) |
| `git stash drop` | 删除暂存 |
### 标签操作
| 命令 | 说明 |
|------|------|
| `git tag` | 查看标签列表 |
| `git tag <name>` | 创建轻量标签 |
| `git tag -a <name> -m "说明"` | 创建附注标签 |
| `git push origin <tag>` | 推送标签到远程 |
| `git push origin --tags` | 推送所有标签 |