Git常用命令详解:分支、暂存与回退操作
需积分: 7 114 浏览量
更新于2024-09-05
收藏 16KB DOCX 举报
在本文档中,我们深入探讨了Git,一种流行的分布式版本控制系统,主要关注于常用的命令及其在项目开发过程中的应用。以下是关于Git命令的详细解读:
1. **分支操作**:
- **git branch**:用于创建新的本地分支。这个命令创建了一个指向当前提交的引用,但并不会切换到新分支。
- **git branch -b [branch-name]**:不仅创建新分支,还会将HEAD指针移动到新分支上,方便立即切换到该分支进行工作。
- **git checkout [branch-name]**:用于切换到指定的分支,可以是本地分支或远程分支(如origin/分支名)。
- **git branch** 和 **git branch -avv**:分别列出所有本地分支及其最后一次修改的提交,以及当前分支的完整历史。
- **git branch --merged** 和 **git branch --no-merged**:分别显示已与当前分支合并和未合并的其他分支列表,帮助管理分支状态。
- **git branch -d [branch-name]** 和 **git branch -D [branch-name]**:删除本地分支,-D表示强制删除,即使分支仍有未提交的更改。
- **git branch origin/[branch-name]**:将本地分支与远程仓库的分支关联。
- **git merge [branch-name]**:合并指定分支到当前分支,`--no-ff` 参数用于合并时保留提交历史。
2. **暂存操作**:
- **git stash**:临时保存当前工作区的修改,便于切换分支或处理其他任务。
- **git stash apply [stash-id]**:恢复暂存区的最新一次改动。
- **git stash pop**:恢复并丢弃最近的暂存,若需要,可使用 `stash list` 查看所有暂存记录。
- **git stash drop [stash-id]**:移除指定暂存记录。
- **git stash clear**:清空整个暂存区。
3. **回退操作**:
- **git reset --hard HEAD^**:回退到上一个提交,`--hard` 表示重置文件到指定版本,忽略暂存区。
- **git reset --hard commit_id**:根据提交ID回退到指定版本。
- **git checkout --file [file]**:撤销单个文件的暂存或版本库更改。
- **git reset HEAD file**:仅从暂存区撤回对文件的更改,保留文件在版本库中的状态。
4. **标签操作**:
- **git tag [tag-name]**:创建一个新的标签,默认对应当前提交。
- **git tag [tag-name] commit_id**:为特定提交打标签,并允许添加备注。
- **git tag -a [tag-name] -m 'description'**:创建带有注释的新标签。
- **git tag --list**:查看本地的所有标签。
- **git show [tag-name]**:查看标签所指向的提交详细信息。
- **git tag -d [tag-name]**:删除本地的标签。
- **git push origin [tag-name]** 或 **git push origin --tags**:将标签推送到远程仓库。
5. **常规操作**:
- **git push origin test**:推送本地的test分支到远程仓库。
- **git rm -r --cached [file/folder]**:取消版本控制文件或文件夹,但保留本地文件。
- **git reflog**:查看命令历史记录,用于查找丢失的提交或恢复历史。
- **git log --graph**:展示分支合并图,便于理解分支发展和合并关系。
这些命令构成了Git开发工作流程的基础,熟练掌握它们能够有效管理和协作开发项目,保持代码版本的清晰与一致性。通过实际操作和实践,开发者可以更高效地使用Git来维护代码库的健康和组织结构。
2020-02-20 上传
2018-12-20 上传
2021-08-11 上传
2023-11-15 上传
2021-04-25 上传
2021-02-25 上传
2020-03-16 上传
teng121
- 粉丝: 1
- 资源: 8
最新资源
- 构建基于Django和Stripe的SaaS应用教程
- Symfony2框架打造的RESTful问答系统icare-server
- 蓝桥杯Python试题解析与答案题库
- Go语言实现NWA到WAV文件格式转换工具
- 基于Django的医患管理系统应用
- Jenkins工作流插件开发指南:支持Workflow Python模块
- Java红酒网站项目源码解析与系统开源介绍
- Underworld Exporter资产定义文件详解
- Java版Crash Bandicoot资源库:逆向工程与源码分享
- Spring Boot Starter 自动IP计数功能实现指南
- 我的世界牛顿物理学模组深入解析
- STM32单片机工程创建详解与模板应用
- GDG堪萨斯城代码实验室:离子与火力基地示例应用
- Android Capstone项目:实现Potlatch服务器与OAuth2.0认证
- Cbit类:简化计算封装与异步任务处理
- Java8兼容的FullContact API Java客户端库介绍