git

git学习记录

Posted by JoyLee on May 22, 2025

1.怎么把本地仓库中历史某一次commit状态的某一个文件保存到当前状态?

方法:使用git checkout命令

  1. 找到目标提交的哈希值

    • 使用git log命令查看提交历史,找到目标提交的哈希值(commit hash)。例如:

      1
      
      git log
      

      假设目标提交的哈希值是abc123

  2. 将目标文件从历史提交中检出到当前工作目录

    • 使用git checkout命令,指定目标提交的哈希值和文件路径。例如:

      1
      
      git checkout abc123 -- path/to/your/file
      

      这会将目标提交中的文件path/to/your/file检出到当前工作目录的相应位置。

2.Git Worktree的使用

使用场景

使用Git Worktree创建多个工作目录,在不同的工作目录下可以切换到不同的分支,方便同时打开不同分支上的代码进行对比查看,而不是在同一个工作目录下做切换。

💡:一个工作目录类似于一块显示屏,打开多个工作目录,相当于打开多个显示屏,可以提高工作效率。

基本操作

我来为你详细讲解如何用 Git 新建一个工作空间(Workspace)。Git 本身没有内置的 “workspace” 命令,但通常指的是以下几种场景:


方法一:Git Worktree(推荐)⭐

Git Worktree 允许你在同一个仓库中创建多个独立的工作目录,每个目录可以 checkout 不同的分支,互不干扰。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 1. 进入你的项目根目录
cd /path/to/your/project

# 2. 创建新的工作空间(基于新分支)
git worktree add ../project-feature-branch feature-branch-name

# 或者基于当前分支创建新分支并建立工作空间
git worktree add -b new-feature ../project-new-feature

# 3. 查看所有工作空间
git worktree list

# 4. 删除工作空间
git worktree remove ../project-feature-branch

特点:

  • 共享同一个 .git 仓库,节省磁盘空间
  • 不同工作空间可以同时处于不同分支
  • 避免频繁 git stash 切换分支的麻烦

方法二:克隆到新目录(传统方式)

1
2
3
4
5
# 克隆到全新的独立目录
git clone /path/to/original/project /path/to/new/workspace

# 或者从远程克隆
git clone https://github.com/user/repo.git ./new-workspace

特点:

  • 完全独立的副本
  • 占用双倍磁盘空间
  • 适合长期独立的开发线

快速对比

方式 适用场景 磁盘占用 分支切换
git worktree 同时开发多个功能 低(共享仓库) 无需切换,并行工作
git clone 完全隔离的环境 高(完整副本) 独立管理

实用建议

如果你经常需要在多个分支间切换开发,git worktree 是最佳选择