目录
2.暂存区:用于临时存放改动过的文件,准备提交到版本库。在Git中,暂存区有时也称为索引(index)
3.本地仓库:存储所有版本信息的目录,通常位于工作区的一个隐藏目录(.git)中
引入
有了对版块控制的基础了解(参见-版块控制---git-CSDN博客),下面详细拓展Git的相关知识。
首先,Git是目前世界上最先进的分布式文件版本控制系统,虽然仍旧存在部分安全隐患,但是作为一个开源系统,目前依旧处在更迭和使用中。
一、Git的基本概念
版本控制的定义
版本控制是指将一组文件的改动记录下来,形成版本历史,以便需要时恢复。Git能够追踪代码的改动历史,并允许用户在不同版本之间切换、合并和比较。
Git四大核心组成详析
【关系流程图】
1.工作区:用户当前操作的目录,即电脑里能看到的目录。
定义:工作区是用户在电脑文件系统中能看到的项目目录,包含了项目的实际文件。这些文件是用户日常进行开发和修改的地方。
功能:在工作区中,用户可以对项目文件进行添加、修改、删除等操作。这些操作在Git跟踪之前,只存在于用户的本地文件系统中。
与Git的关系:当用户在工作区中对文件进行修改后,需要将这些修改添加到Git的暂存区,以便在下一次提交时包含这些修改。
2.暂存区:用于临时存放改动过的文件,准备提交到版本库。在Git中,暂存区有时也称为索引(index)
【如下,工作区提交的文件,就会出现在红圈圈区域(暂存区)】
定义:暂存区是一个中间区域,位于Git仓库内部,用于暂存工作区中的改动。这些改动在提交到本地仓库之前,会先被添加到暂存区。
功能:暂存区相当于一个缓冲区,允许你选择性地添加修改到提交中。你可以根据需要,将工作区中的部分或全部修改添加到暂存区【git add .】
,以便在下一次提交时包含这些修改。
操作:使用【git add <文件名>】
命令可以将指定文件从工作区添加到暂存区。使用【git ls-files】
命令可以查看暂存区中的文件。
3.本地仓库:存储所有版本信息的目录,通常位于工作区的一个隐藏目录(.git)中
【通过【git init】指令来实现将一个本地文件夹变成本地仓库;执行成功后,该文件夹就会生成出来一个隐藏目录(如果不显示可以去点击文件夹显示去调出来)】
【注:这个版本库不能随便挪动,否则就会使当前文件夹作废】
定义:本地仓库是存储在自己计算机本地的版本库,包含了完整的项目历史数据。
功能:本地仓库是Git的核心部分,它保存了项目的完整历史记录。每个提交都代表一个特定时间点上的项目状态。
操作:使用【git commit -m"update"】
命令可以将暂存区中的内容创建为一个新的提交,并将其添加到本地仓库中。这样,就得到了一个包含所有更改的新版本(即更新了本地仓库)。
小引入
使用git commit:
- 修改文件后,使用
git add
命令将文件添加到暂存区。- 然后使用
git commit
命令提交暂存区的更改。- 示例:
git add .
和git commit -m 'update'
。使用git commit -m:
- 直接使用
git commit -am 'update'
命令提交所有已跟踪的文件,无需先执行git add
。- 示例:
git commit -am 'update'
4.远程仓库
定义:远程仓库是位于网络上的Git仓库(类似服务器),通常托管在像Gitee、GitHub、GitLab或Bitbucket等服务提供商上。
功能:远程仓库用于协作开发、共享代码和版本管理。多个开发者可以共享同一个远程仓库,每个人可以将自己的改动推送到远程仓库,从而实现协同开发。同时,远程仓库也提供了项目的备份和存档。
操作:使用【git clone 仓库SSH路径
】命令可以将远程仓库的代码克隆到本地。使用【git push
】命令可以将本地的代码推送到远程仓库。使用【git pull
】命令可以从远程仓库中拉取最新的代码到本地。
二、Git的常用命令
初始化工作区:【git init】
用于初始化一个新的Git仓库。
查看状态:【git status】
用于查看当前工作区的状态,包括哪些文件已被修改、哪些文件还未提交等。
提交改动:
【git add 文件名】
:将指定文件添加到暂存区。
【git commit -m '提交信息'】
:将暂存区的改动提交到版本库,并附上提交信息。
查看日志:【git log
】用于查看当前提交日志,包括每次提交的commit id、提交者、提交时间和提交信息等。
版本回退:
【git reflog】
:查看所有操作记录,包括每次提交的commit id和回退操作等。
【git reset --hard <版本号>】
:将当前版本回退到指定版本。
注:Git本身就是为版块控制而生,所以可以进行这些退回操作。
撤销修改:
【git checkout -- <文件名称>】
:撤销工作区的修改,恢复为暂存区或版本库中的版本。
【git reset HEAD <文件名称>】
:撤销暂存区的修改,恢复为工作区的版本。
⭐分支操作:
【git branch <分支名>】
:创建新分支。
【git checkout <分支名>】
:切换到指定分支。
【git checkout -b<分支名>】
:创建并切换到指定分支。
【git checkout master】
:
回到主分支。
【git merge <分支名>】
:合并指定分支到当前分支。
{注:git merge并不是合并指定分支到master主分支,一定不要搞混了}
【git branch -d <分支名>】
:删除本地已合并的分支。
引入:Git一些高级命令(参考)
贮藏(stash):
git stash
:将当前工作区的改动暂存起来,以便稍后恢复。git stash list
:查看所有贮藏的记录。git stash apply
:恢复最近一次的贮藏。git stash pop
:恢复最近一次的贮藏,并删除该贮藏记录。git stash drop
:删除指定贮藏记录。cherry-pick:
git cherry-pick <commit_hash>
:提取指定提交,并应用到当前分支。revert:
git revert <commit_hash>
:生成一个撤回之前提交的新commit,确保其他人修改的记录不会受到影响。reflog:
- 除了用于查看所有操作记录外,
git reflog
还可以用于找回遗失的提交。通过查看历史记录,找到丢失的commit id,然后使用git reset <commit_hash>
找回。