Git教程

为什么要学习Git?

无论是单人开发还是多人开发,都必须要设计版本管理.
我们今天开发到了A版本,但是第二天我们已经把A改的面目全非了,这时候出了错,或者改了需求,我们想要退回A版本怎么办?
在A做好的时候就把A版本存起来,后面有问题直接回滚成版本A.
Git的作用还不止于此,还用于多人协作.

在这里插入图片描述
D://repo1被称为工作区(除了.git的部分)
D://repo1//.git被称为版本库(repository)
版本库里面又有stage(暂存区)和branch(分支)

共享代码和合并代码的时候,就需要一个远程仓库

分支

所谓分支,说白了就是一条时间线,每次git commit形成一个个版本,一个个版本一次存储在分支的一个个提交点上.
一个branch分支就是一条时间线
不建议一直都在master主分支上提交,我们把它保护的很好,只有很重要的commit到master分支中
我们新建一个开发分支,确定稳定以后,才移植到master分支上,也就是说,master上所有版本都是相对稳定的.
如何创建分支呢?

git branch dev
创建了一个叫dev的分支

在这里插入图片描述

*表示你现在在使用的是master分支
如何切换到dev分支呢?

git checkout dev


哪一个分支都有一个指针,指向最新的版本.
当你新建一个分支的时候,实际上是先新建了一个指针.
分支之所以叫分支,是因为当你新建这个分支的瞬间,这个分支包含了前面分支的所有提交点.真的是分支的概念

分支的合并

Git的工作流程

我们来看Git的工作流程:
一般工作流程如下:
1.克隆Git资源作为工作目录
2.在克隆的资源上添加或者修改文件
3.如果其他人修改了,你可以更新资源
4.在提交前查看修改
5.提交修改
6.在修改完成后,如果发现错误,可以撤回提交并且再次修改并提交

基本概念

我们先来理解一下Git工作区,暂存区,版本库的概念:

工作区:就是在你的电脑里面能看到的目录
暂存区:英文叫stage或index,一般存放在.git目录下的index文件(.git/index)中,所以我们把暂存区优势也叫做索引(index)
版本库:工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库

下面这个图展示了工作区\版本库中的暂存区和版本库之间的关系

Git基本操作

Git的工作就是创建和保存你项目的快好以及与之后的快照进行对比.
Git常用的是如下6个命令:git clone, git push, git add,git commit,git checkout, git pull后面会详细介绍
在这里插入图片描述
在这里插入图片描述
workspace:工作区
staging area:暂存区/缓存区
local repository:本地仓库
remote repository:远程仓库

实际开发中Git的使用

项目经理开始的时候在IDEA中新建一个开发的项目,然后新建一个.gitignore文件,告诉每个local的Git在add,commit,push的时候要忽略哪些文件.项目经理然后创建一些包,做一些简单的初始内容.一般来说,都是空的.然后做一次提交,作为初始化,这样本地仓库就建好了.然后项目经理会建好所有的分支,然后把本地项目push传到远程(组内的Git服务器)私有仓库.注意要把所有branch都push了.然后将开发组员拉入到这个私有仓库的开发人员列表中.
然后在远程这儿要做一个主分支的保护,把它状态定义成保护分支,这样只有管理员(项目经理)可以向master分支push成熟稳定的版本.
然后开发程序员克隆仓库,更新,写代码,push.

开发人员怎么做呢?
1.先clone远程库,获得项目.建立本地仓库.
2.在本地上commit,然后push到远程
3.需要更新项目内容的时候,通过pull从远程仓库拉取内容
4.每次在push内容到远程之前,都要先pull一把!把远程最新内容合并到本地,合适本地内容和远程内容是否有冲突!
程序员要保证一定在本地合并!!!这样有冲突了好解决!解决冲突以后push到远程!(在push之前,先pull!!!)

一个简单操作

$ git init
$ git add 
$ git commit

git init 初始化仓库
git add 添加文件到暂存区
git commit 将暂存区内容添加到仓库中

创建仓库命令

下表列出了git创建仓库的命令:
git init 初始化仓库
git clone拷贝一份远程仓库,也就是下载一个项目

提交与修改

Git的工作就是创建和保存以你项目的快照与之后的快照进行对比:
下表列出了有关创建与提交你的项目的快照的命令:

git add:添加文件到仓库
git status:查看仓库当前的状态,显示有变更的文件
git diff: 比较文件的不同,也就是暂存区和工作区的差异
git commit :提交暂存区到本地仓库
git reset:回退版本
git rm:删除工作区文件
git mv:删除工作区文件

提交日志

git log:查看历史提交记录

git blame<file> 以列表形式查看指定文件的历史修改记录

远程操作

git remote 远程仓库操作
git fetch 从远程获取代码库
git pull 下载远程代码并合并
git push 上传远程代码并合并

Git分支管理

几乎每一版本控制系统都以某种形式支持分支.使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作.
有人把Git的分支模型称为必杀技特性,而正是因为它,将Git从版本控制系统家族里区分出来

创建分支命令:
git branch(branchname)

切换分支命令
git checkout(branchname)

当你切换分支的时候,Git会用该分支的最后提交的快照替换你的工作目录的内容,所以多个分支不需要多个目录

合并分支的命令:

git merge

你可以多次合并到统一分支,也可以选择在合并之后直接删除被并入的分支
开始前我们先创建一个测试目录:

<think>好的,用户想学习Git的使用方法,我需要提供一个结构清晰的教程。首先,我得回想一下Git的基本概念和常用命令,确保覆盖安装、配置、基本操作、分支管理和远程仓库这些关键点。 用户可能刚接触Git,所以要从安装开始。记得引用中的例子提到安装后输入git --version检查版本,这部分要包括进去。然后配置用户名和邮箱,这是初始化设置的重要步骤。 接下来是基本操作,初始化仓库、添加文件、提交更改。用户可能需要具体的命令示例,比如git init,git add,git commit这些。要注意强调每个步骤的作用,比如暂存区和提交的区别。 分支管理部分,创建、切换、合并分支是重点。需要解释分支的作用,以及如何解决合并冲突,这部分容易出问题,要详细说明步骤。 远程仓库方面,用户提到的git remote add来自引用[2],所以需要正确引用。还要包括克隆、推送和拉取的操作,这些都是团队协作中的常用命令。 最后,用户可能对更高级的操作感兴趣,比如撤销操作、查看历史、忽略文件等,可以放在进阶部分。但要注意不要太过深入,保持教程的基础性。 需要检查所有命令的正确性,确保LaTeX格式符合要求,行内公式用$...$,独立公式用$$...$$。同时生成相关问题,帮助用户进一步学习。比如如何解决冲突、Git与其他工具的区别等。 确保回答结构清晰,分步骤讲解,引用正确,并且语言简洁易懂。避免使用专业术语过多,必要时进行解释。最后验证所有引用标记是否正确对应,比如引用[^1]和引用[^2]的来源。</think>### Git使用教程 #### 1. Git安装与配置 - **安装Git**:访问官网下载对应系统版本,安装后通过终端输入: ```bash git --version ``` 若显示版本号(如$git version 2.39.3$),则安装成功[^1]。 - **全局配置**: ```bash git config --global user.name "Your Name" git config --global user.email "your.email@example.com" ``` 此配置将关联提交记录的作者信息。 #### 2. 基础操作 - **初始化仓库**: ```bash git init ``` 该命令会在当前目录生成隐藏的$.git$文件夹,用于版本控制。 - **文件追踪与提交**: ```bash git add README.md # 添加单个文件到暂存区 git add . # 添加所有修改到暂存区 git commit -m "Initial commit" # 提交更改并添加描述 ``` 提交记录的哈希值格式为$commit\ 40a1b2c3...$,用于唯一标识每次提交。 #### 3. 分支管理 - **分支操作**: ```bash git branch dev # 创建分支 git checkout dev # 切换分支 git merge dev # 合并分支到当前分支 ``` 冲突解决示例: ```bash # 手动修改冲突文件后执行 git add conflicted_file.txt git commit -m "Resolve merge conflict" ``` #### 4. 远程仓库协作 - **关联远程仓库**: ```bash git remote add origin git@github.com:user/repo.git # 引用自[2] ``` - **推送与拉取**: ```bash git push -u origin main # 首次推送 git pull origin main # 拉取远程更新 ``` #### 5. 进阶操作 - **撤销修改**: ```bash git checkout -- file.txt # 撤销工作区修改 git reset HEAD file.txt # 撤销暂存区修改 ``` - **查看历史**: ```bash git log --graph --oneline # 图形化显示提交历史 ``` - **忽略文件**: 创建$.gitignore$文件,添加需忽略的文件模式: ``` *.log /temp/ ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值