Git基础知识详解:初始化、提交、查看状态和版本控制
下载需积分: 10 | DOCX格式 | 180KB |
更新于2024-09-08
| 201 浏览量 | 举报
Git学习笔记
Git是一款版本控制系统,帮助开发者跟踪代码修改、协作开发和版本管理。本文将详细介绍Git的基本使用和重要知识点。
一、Git的登录及初始化
在使用Git之前,需要进行初始化设置,包括设置用户名和邮箱。这可以通过以下命令实现:
$ git config --global user.name "YourName"
$ git config --global user.email "email@example.com"
接下来,创建一个空目录,并使用git init命令将其变成Git可以管理的仓库:
$ mkdir learngit
$ git init
Initialized empty Git repository in /Users/michael/learngit/.git/
二、初始化Git仓库,及提交文件
使用git init命令可以初始化一个Git仓库。添加文件到Git仓库需要两步:
• 第一步,使用命令git add,注意,可以反复多次使用,添加多个文件;
• 第二步,使用命令git commit -m "read_me",完成。
三、查看Git当前的工作区状态
要随时掌握工作区的状态,使用git status命令。如果git status告诉你有文件被修改过,用git diff可以查看修改内容。
四、Git还原之前版本
HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id。返回上一个版本可以使用命令:$ git reset --hard HEAD^。返回上上一个版本可以使用命令:$ git reset --hard HEAD^^。穿梭前,使用git log可以查看提交历史,以便确定要回退到哪个版本。要重返未来,使用git reflog查看命令历史,以便确定要回到未来的哪个版本。
五、Git版本库简介
版本库(Repository):工作区有一个隐藏目录“.git”,这个不算工作区,而是Git的版本库。Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。
在将文件添加到Git版本库时,是分两步执行的:
第一步是使用“git add”把文件添加进去,实际上就是把文件修改添加到暂存区;
第二步是使用“git commit”提交更改,实际上就是把暂存区的内容提交到版本库。
六、 Git 分支管理
Git的分支管理可以帮助我们更好地组织和管理代码。使用git branch命令可以创建、查看和删除分支。使用git checkout命令可以切换到不同的分支。
七、 Git 合作开发
Git的分布式版本控制系统使得多人合作开发变得更加容易。使用git remote命令可以添加、查看和删除远程仓库。使用git pull命令可以从远程仓库拉取最新的代码。使用git push命令可以将代码推送到远程仓库。
八、 Git 高级应用
Git的高级应用包括 Git Submodule、Git Hooks、Git LFS等。Git Submodule可以帮助我们管理子模块,Git Hooks可以帮助我们在不同阶段执行自定义的脚本,Git LFS可以帮助我们管理大文件。
Git是一个功能强大且灵活的版本控制系统,帮助开发者更好地管理代码、协作开发和版本控制。本文仅仅介绍了Git的基本使用和重要知识点,更多的高级应用和技巧需要进一步学习和实践。
相关推荐








生如~夏花
- 粉丝: 4784
最新资源
- C语言课程设计:数据结构与类实现
- JasperReport全面指南v1.0:XML解析与报告处理详解
- Linux内核基础教程:从硬件到进程管理
- 大连民族学院班级管理系统:需求分析与功能概览
- 深入理解Struts框架:架构与组件解析
- Hibernate入门教程:从零开始掌握对象-关系映射
- Eclipse中文手册:全面指南与设置详解
- 软件项目管理计划详解:流程、角色与交付物
- 项目管理实施与控制规划
- 计算机常用英语术语词汇大全
- Java工厂方法设计模式详解与示例
- Python框架深度解析:Django与TurboGears构建Web 2.0应用
- C++经典第三版:原版英文教程指南
- 深入理解AJAX技术:原理与应用实例
- Oracle Designer:从建模入门到业务流程设计
- 软件配置管理与实践