Parcourir la source

添加常见场景栏目,包括查看refLog、保证回退位置在push前、绕开错误线上版本、定位内容签入人

zhangguo il y a 6 jours
Parent
commit
144c39b337
1 fichiers modifiés avec 111 ajouts et 23 suppressions
  1. 111 23
      Git/GitRead.md

+ 111 - 23
Git/GitRead.md

@@ -17,53 +17,120 @@
 - **索引(Index)**:与暂存区同义,用于暂存要提交的更改
 - **提交哈希(Commit Hash)**:每个提交的唯一标识符,由SHA-1算法生成
 - **标签(Tag)**:给特定提交添加的标记,通常用于版本发布
-- **快照(Snapshot)**:Git存储的文件状态,而非文件差异
-- **重基(Rebase)**:将一个分支的提交应用到另一个分支上
-- **变基(Rebase)**:与重基同义,用于重新组织提交历史
-- **分叉(Fork)**:从他人的仓库创建一个自己的副本
-- **Pull Request**:请求将自己的更改合并到他人的仓库
 - **工作流(Workflow)**:团队使用Git的流程和规范
 - **子模块(Submodule)**:在一个仓库中引用另一个仓库
 - **Gitignore**:指定Git应忽略的文件和目录
 - **Reflog**:Git操作的日志,用于恢复意外丢失的提交
-- **Cherry-pick**:从一个分支选择特定的提交应用到另一个分支
-- **Bisect**:通过二分查找定位引入错误的提交
-- **Stash**:暂时保存未提交的更改,以便在不同分支间切换
-- **Subtree**:将一个仓库作为另一个仓库的子目录
+
+## 常见场景
+
+### 如何看本地当前分支refLog
+
+- 在项目文件夹上右键点击,选择 **TortoiseGit → 显示引用日志**
+- 在弹出的对话框中,可以看到本地当前分支的所有操作历史
+- 每条记录包含操作类型、提交哈希、操作时间和操作描述
+
+### 如何保证回退的位置在push前
+
+1. **查看推送历史**
+   - 在项目文件夹上右键点击,选择 **TortoiseGit → 显示日志**
+   - 在日志对话框中,点击 **限制** 按钮
+   - 在弹出的对话框中,设置 **作者** 过滤条件为自己的用户名
+   - 点击 **确定** 按钮
+   - 找到最后一次推送的提交
+
+2. **回退到推送前的提交**
+   - 在日志对话框中,选择推送前的提交
+   - 右键点击,选择 **重置"master"到这个版本**
+   - 在弹出的对话框中,选择合适的重置类型
+   - 点击 **确定** 按钮
+
+### 如何通过日志建立分支的方式来绕开错误的线上版本并最终合并替代
+
+1. **找到错误版本之前的正确提交**
+   - 在项目文件夹上右键点击,选择 **TortoiseGit → 显示日志**
+   - 在日志对话框中,找到错误版本之前的正确提交
+
+2. **基于正确提交创建新分支**
+   - 在正确的提交上右键点击,选择 **创建分支**
+   - 在弹出的对话框中,输入新分支名称
+   - 点击 **确定** 按钮
+
+3. **在新分支上继续开发**
+   - 在项目文件夹上右键点击,选择 **TortoiseGit → 分支/标签 → 切换/检出**
+   - 在弹出的对话框中,选择新创建的分支
+   - 点击 **确定** 按钮
+   - 在新分支上进行开发和修复
+
+4. **合并新分支到主分支**
+   - 在项目文件夹上右键点击,选择 **TortoiseGit → 分支/标签 → 切换/检出**
+   - 在弹出的对话框中,选择主分支
+   - 点击 **确定** 按钮
+   - 在项目文件夹上右键点击,选择 **TortoiseGit → 合并**
+   - 在弹出的对话框中,选择新创建的分支
+   - 点击 **确定** 按钮
+   - 解决冲突(如果有)
+   - 提交合并结果
+
+### 如何快速定位某个内容的签入人和时间
+
+1. **使用内容搜索**
+   - 在项目文件夹上右键点击,选择 **TortoiseGit → 查找**
+   - 在弹出的对话框中,选择 **按内容查找** 标签页
+   - 输入要查找的内容
+   - 点击 **查找** 按钮
+   - 在搜索结果中,选择包含目标内容的文件
+
+2. **查看文件的提交历史**
+   - 在搜索结果中,右键点击目标文件,选择 **显示日志**
+   - 在日志对话框中,可以看到文件的所有提交历史
+   - 每条记录包含提交人、提交时间、提交信息和更改内容
+
+3. **查看特定内容的签入信息**
+   - 在日志对话框中,选择一个提交
+   - 在右侧面板中,查看该提交的更改内容
+   - 找到包含目标内容的更改
+   - 记录该提交的作者和时间
 
 ## 远端与本地分支
 
 ### 本地分支操作(使用TortoiseGit UI)
 
 1. **创建新分支**
+   
    - 在项目文件夹上右键点击,选择 **TortoiseGit → 分支/标签 → 创建分支**
    - 在弹出的对话框中,输入分支名称
    - 选择基于哪个提交创建分支(默认为当前HEAD)
    - 点击 **确定** 按钮
 
 2. **切换分支**
+   
    - 在项目文件夹上右键点击,选择 **TortoiseGit → 分支/标签 → 切换/检出**
    - 在弹出的对话框中,从分支列表中选择要切换的分支
    - 点击 **确定** 按钮
 
 3. **创建并切换到新分支**
+   
    - 在项目文件夹上右键点击,选择 **TortoiseGit → 分支/标签 → 创建分支**
    - 在弹出的对话框中,输入分支名称
    - 勾选 **切换到新分支** 选项
    - 点击 **确定** 按钮
 
 4. **查看本地分支**
+   
    - 在项目文件夹上右键点击,选择 **TortoiseGit → 分支/标签 → 分支**
    - 在弹出的对话框中,可以看到所有本地分支和远程分支
    - 当前分支会以加粗显示
 
 5. **删除本地分支**
+   
    - 在项目文件夹上右键点击,选择 **TortoiseGit → 分支/标签 → 分支**
    - 在弹出的对话框中,选择要删除的本地分支
    - 点击 **删除** 按钮
    - 在确认对话框中,点击 **确定** 按钮
 
 6. **强制删除本地分支**
+   
    - 在项目文件夹上右键点击,选择 **TortoiseGit → 分支/标签 → 分支**
    - 在弹出的对话框中,选择要强制删除的本地分支
    - 点击 **删除** 按钮
@@ -73,6 +140,7 @@
 ### 远端分支操作(使用TortoiseGit UI)
 
 1. **添加远程仓库**
+   
    - 在项目文件夹上右键点击,选择 **TortoiseGit → 设置**
    - 在左侧导航栏中选择 **Git → 远端**
    - 点击 **添加** 按钮
@@ -80,21 +148,25 @@
    - 点击 **确定** 按钮
 
 2. **查看远程仓库**
+   
    - 在项目文件夹上右键点击,选择 **TortoiseGit → 设置**
    - 在左侧导航栏中选择 **Git → 远端**
    - 可以看到所有已添加的远程仓库及其URL
 
 3. **从远程仓库拉取更新**
+   
    - 在项目文件夹上右键点击,选择 **TortoiseGit → 拉取**
    - 在弹出的对话框中,选择远程仓库和分支
    - 点击 **确定** 按钮
 
 4. **推送本地分支到远程仓库**
+   
    - 在项目文件夹上右键点击,选择 **TortoiseGit → 推送**
    - 在弹出的对话框中,选择本地分支和远程分支
    - 点击 **确定** 按钮
 
 5. **推送本地分支并设置上游分支**
+   
    - 在项目文件夹上右键点击,选择 **TortoiseGit → 推送**
    - 在弹出的对话框中,选择本地分支
    - 在远程分支输入框中输入分支名称
@@ -102,15 +174,18 @@
    - 点击 **确定** 按钮
 
 6. **查看远程分支**
+   
    - 在项目文件夹上右键点击,选择 **TortoiseGit → 分支/标签 → 分支**
    - 在弹出的对话框中,选择 **远程分支** 标签页
    - 可以看到所有远程分支
 
 7. **查看所有分支(本地和远程)**
+   
    - 在项目文件夹上右键点击,选择 **TortoiseGit → 分支/标签 → 分支**
    - 在弹出的对话框中,可以看到本地分支和远程分支
 
 8. **删除远程分支**
+   
    - 在项目文件夹上右键点击,选择 **TortoiseGit → 推送**
    - 在弹出的对话框中,选择远程仓库
    - 在 **本地分支** 下拉菜单中选择 **<无>**
@@ -121,21 +196,25 @@
 ### 分支合并(使用TortoiseGit UI)
 
 1. **切换到目标分支**
+   
    - 在项目文件夹上右键点击,选择 **TortoiseGit → 分支/标签 → 切换/检出**
    - 在弹出的对话框中,选择目标分支
    - 点击 **确定** 按钮
 
 2. **合并源分支到目标分支**
+   
    - 在项目文件夹上右键点击,选择 **TortoiseGit → 合并**
    - 在弹出的对话框中,选择要合并的源分支
    - 点击 **确定** 按钮
 
 3. **解决冲突**
+   
    - 如果合并过程中出现冲突,TortoiseGit会显示冲突文件列表
    - 双击冲突文件,使用TortoiseGit的冲突解决工具解决冲突
    - 解决完冲突后,保存文件
 
 4. **提交合并结果**
+   
    - 在项目文件夹上右键点击,选择 **TortoiseGit → 提交**
    - 在弹出的对话框中,确认提交信息
    - 点击 **确定** 按钮
@@ -145,36 +224,43 @@
 ### 查看提交历史(使用TortoiseGit UI)
 
 1. **查看完整提交历史**
+   
    - 在项目文件夹上右键点击,选择 **TortoiseGit → 显示日志**
    - 在弹出的对话框中,可以看到完整的提交历史
 
 2. **查看简洁提交历史**
+   
    - 在项目文件夹上右键点击,选择 **TortoiseGit → 显示日志**
    - 在日志对话框中,点击 **视图** 菜单
    - 选择 **紧凑模式**
 
 3. **查看最近N个提交**
+   
    - 在项目文件夹上右键点击,选择 **TortoiseGit → 显示日志**
    - 在日志对话框中,点击 **限制** 按钮
    - 在弹出的对话框中,设置 **限制数量**
    - 点击 **确定** 按钮
 
 4. **查看提交历史和更改内容**
+   
    - 在项目文件夹上右键点击,选择 **TortoiseGit → 显示日志**
    - 在日志对话框中,选择一个提交
    - 在右侧面板中,可以看到该提交的更改内容
 
 5. **查看特定文件的提交历史**
+   
    - 在文件上右键点击,选择 **TortoiseGit → 显示日志**
    - 在弹出的对话框中,可以看到该文件的提交历史
 
 6. **查看特定作者的提交历史**
+   
    - 在项目文件夹上右键点击,选择 **TortoiseGit → 显示日志**
    - 在日志对话框中,点击 **限制** 按钮
    - 在弹出的对话框中,设置 **作者** 过滤条件
    - 点击 **确定** 按钮
 
 7. **查看特定时间段的提交历史**
+   
    - 在项目文件夹上右键点击,选择 **TortoiseGit → 显示日志**
    - 在日志对话框中,点击 **限制** 按钮
    - 在弹出的对话框中,设置 **日期范围**
@@ -183,23 +269,28 @@
 ### 查看更改(使用TortoiseGit UI)
 
 1. **查看工作区和暂存区的差异**
+   
    - 在项目文件夹上右键点击,选择 **TortoiseGit → 检查修改**
    - 在弹出的对话框中,可以看到工作区的修改
 
 2. **查看暂存区和HEAD的差异**
+   
    - 在项目文件夹上右键点击,选择 **TortoiseGit → 检查修改**
    - 在弹出的对话框中,选择 **已暂存的修改** 标签页
 
 3. **查看工作区和HEAD的差异**
+   
    - 在项目文件夹上右键点击,选择 **TortoiseGit → 比较差异**
    - 在弹出的对话框中,选择 **与基础版本比较**
 
 4. **查看两个提交之间的差异**
+   
    - 在项目文件夹上右键点击,选择 **TortoiseGit → 显示日志**
    - 在日志对话框中,选择两个提交
    - 右键点击,选择 **比较差异**
 
 5. **查看两个分支之间的差异**
+   
    - 在项目文件夹上右键点击,选择 **TortoiseGit → 分支/标签 → 分支**
    - 在弹出的对话框中,选择两个分支
    - 右键点击,选择 **比较差异**
@@ -208,21 +299,10 @@
 
 ### 回退到之前的提交(使用TortoiseGit UI)
 
-1. **软回退:保留工作区和暂存区的更改**
-   - 在项目文件夹上右键点击,选择 **TortoiseGit → 显示日志**
-   - 在日志对话框中,选择要回退到的提交
-   - 右键点击,选择 **重置"master"到这个版本**
-   - 在弹出的对话框中,选择 **软重置** 选项
-   - 点击 **确定** 按钮
-
-2. **混合回退:保留工作区的更改,清空暂存区**
-   - 在项目文件夹上右键点击,选择 **TortoiseGit → 显示日志**
-   - 在日志对话框中,选择要回退到的提交
-   - 右键点击,选择 **重置"master"到这个版本**
-   - 在弹出的对话框中,选择 **混合重置** 选项(默认)
-   - 点击 **确定** 按钮
+1. 
 
-3. **硬回退:丢弃工作区和暂存区的更改**
+2. **硬回退:丢弃工作区和暂存区的更改**
+   
    - 在项目文件夹上右键点击,选择 **TortoiseGit → 显示日志**
    - 在日志对话框中,选择要回退到的提交
    - 右键点击,选择 **重置"master"到这个版本**
@@ -240,10 +320,12 @@
 ### 撤销修改(使用TortoiseGit UI)
 
 1. **撤销工作区的修改(未add)**
+   
    - 在文件上右键点击,选择 **TortoiseGit → 还原**
    - 在弹出的对话框中,点击 **确定** 按钮
 
 2. **撤销暂存区的修改(已add但未commit)**
+   
    - 在项目文件夹上右键点击,选择 **TortoiseGit → 检查修改**
    - 在弹出的对话框中,选择 **已暂存的修改** 标签页
    - 选择要撤销的文件
@@ -251,6 +333,7 @@
    - 在确认对话框中,点击 **确定** 按钮
 
 3. **撤销最近的提交,保留更改**
+   
    - 在项目文件夹上右键点击,选择 **TortoiseGit → 显示日志**
    - 在日志对话框中,选择最近的提交
    - 右键点击,选择 **重置"master"到这个版本**
@@ -258,6 +341,7 @@
    - 点击 **确定** 按钮
 
 4. **撤销最近的提交,丢弃更改**
+   
    - 在项目文件夹上右键点击,选择 **TortoiseGit → 显示日志**
    - 在日志对话框中,选择最近的提交
    - 右键点击,选择 **重置"master"到这个版本**
@@ -265,6 +349,7 @@
    - 点击 **确定** 按钮
 
 5. **撤销特定文件的提交**
+   
    - 在文件上右键点击,选择 **TortoiseGit → 显示日志**
    - 在日志对话框中,选择要恢复到的提交
    - 右键点击,选择 **还原到此版本**
@@ -285,11 +370,13 @@
 ### 安全回退策略(使用TortoiseGit UI)
 
 1. **创建备份分支**:在回退前创建一个备份分支,保存当前状态
+   
    - 在项目文件夹上右键点击,选择 **TortoiseGit → 分支/标签 → 创建分支**
    - 在弹出的对话框中,输入备份分支名称
    - 点击 **确定** 按钮
 
 2. **使用revert**:对于已经推送的提交,使用 **还原** 操作而不是 **重置**,这样可以创建一个新的提交来撤销之前的更改,而不是修改历史
+   
    - 在项目文件夹上右键点击,选择 **TortoiseGit → 显示日志**
    - 在日志对话框中,选择要撤销的提交
    - 右键点击,选择 **还原此提交**
@@ -298,6 +385,7 @@
 3. **沟通协作**:如果分支被多人共享,在回退前应与团队成员沟通,确保所有人都了解更改
 
 4. **谨慎使用force推送**:只有在确定不会影响其他开发者的情况下,才使用 **强制推送**
+   
    - 在项目文件夹上右键点击,选择 **TortoiseGit → 推送**
    - 在弹出的对话框中,勾选 **强制推送** 选项
    - 点击 **确定** 按钮