git用法
zhouzhou Lv2

Git 使用指南

目录

  1. 基础操作
  2. SSH 密钥配置
  3. 拉取/同步/推送
  4. Sparse Checkout
  5. 更多实用指令
  6. 注意事项

基础操作

初始化仓库并连接远程

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 新建文件夹并初始化 Git
mkdir project && cd project
git init

# 关联远程仓库
git remote add origin [email protected]:username/repo.git

# 查看远程仓库地址
git remote -v

# 首次推送代码
git add .
git commit -m "Initial commit"
git push -u origin main # 若默认分支为 main

# 检出指定文件到工作区
git checkout origin/main -- python/test/star.py

# 下载远程文件到本地(不修改 Git 记录)
git show origin/main:python/test/star.py > py-win/test/star.py

SSH 密钥配置

生成 SSH 密钥

1
2
ssh-keygen -t ed25519 -C "[email protected]"
# 默认保存路径:~/.ssh/id_ed25519

修改远程仓库 SSH 地址

1
git remote set-url origin [email protected]:zhouzhou12203/documents.git

添加密钥到 Git 平台

  1. 复制公钥内容:
1
cat ~/.ssh/id_ed25519.pub
  1. 粘贴到 GitHub/GitLab 的 SSH Keys 设置中

测试连接

1
2
ssh -T [email protected]  # GitHub
ssh -T [email protected] # GitLab

拉取/同步/推送

拉取远程变更

1
2
git pull origin main       # 拉取并合并
git fetch origin # 仅获取远程变更(不合并)

推送本地变更

1
2
git push origin main      # 推送到指定分支
git push -f origin main # 强制推送(谨慎使用)

解决冲突后同步

1
2
3
4
5
git pull origin main
# 手动解决冲突后
git add .
git commit -m "Resolve conflicts"
git push origin main

Sparse Checkout

使用场景

仅克隆仓库的特定目录(适用于大型仓库)

操作步骤

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
mkdir repo && cd repo
git init
git remote add origin [email protected]:username/repo.git
git config core.sparseCheckout true

# 查看稀疏检出配置
cat .git/info/sparse-checkout

# 指定需要拉取的目录
echo "src/docs/" >> .git/info/sparse-checkout
echo "config/" >> .git/info/sparse-checkout

# 拉取文件
git pull origin main


更多实用指令

分支管理

1
2
3
4
git branch -a                  # 查看所有分支
git checkout -b feature # 创建并切换分支
git merge feature # 合并分支到当前分支
git branch -d feature # 删除本地分支

撤销操作

1
2
3
git reset --soft HEAD^         # 撤销 commit,保留更改
git reset --hard HEAD^ # 彻底丢弃最近一次 commit
git checkout -- file.txt # 撤销文件的未暂存修改

日志与对比

1
2
git log --oneline --graph      # 简洁版提交历史
git diff HEAD~1..HEAD # 对比最近两次提交

高级功能

1
2
3
4
git stash                      # 临时保存未提交的更改
git tag v1.0 # 创建标签
git rebase main # 变基到 main 分支
git clean -fd # 删除未跟踪的文件/文件夹

注意事项

  1. 强制推送风险git push -f 会覆盖远程历史,需团队协商后使用
  2. 冲突处理:拉取代码时优先解决冲突再推送
  3. SSH 权限:确保密钥文件的权限为 600chmod 600 ~/.ssh/id_ed25519
  4. Sparse Checkout:后续新增目录需手动添加到 .git/info/sparse-checkout

更多细节参考 Git 官方文档

由 Hexo 驱动 & 主题 Keep
访客数 访问量