git

本文深入探讨了Git的起源与发展,对比了集中式版本控制系统SVN的局限性,详细讲解了Git分布式版本控制的优势,包括其操作流程、版本回退、差异比较及分支管理等核心功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

git的起源与发展

(听别人说的……)

尊敬的linus先生写出了linux,很多人一起开发,修修改改,没有集中式版本控制工具怎么办呢? 有人赞助了(bitkeeper);然后呢,手痒看人源码去了,就被人给驱逐了;然后呢,大神就自己写了一个……

举个例子理解: 写了一篇论文,原稿自己改了几遍,同学改了几遍,老师改了几遍,老师可以要你第三遍的论文去修改,也可以要你初始的论文去修改,同学一样的…… 修订版大家写作都用过吧…… 还是有痕迹的…… 然后呢,这就相当于本地分支;但是这样子要你去发或者用u盘拷贝有点麻烦是不是,那就放云盘呗,谁想改谁去自己下载,但是说了,我有一个版本我觉得挺好的,你不能随便改,你改的时候告诉我本人一下…… 大概就是这个样子吧……

补充:SVN 集中化的版本控制系统,大家协同工作用同一个服务器。缺点:一旦服务器出现问题,所有人都不能提交更新,历史记录存放单一,出现问题可能面临版本丢失的问题;

GIT是分布式存储管理,客户端存的是原始代码的完整镜像,存储到本地,也就是说每一个客户端的代码仓库都是一样的,任何部分代码出现问题,可以使用其它客户端的代码进行修护;

版本控制系统进化史: 本地版本控制系统——集中式版本控制系统—— 分布式版本控制系统

git操作前补充

1、git分区 工作区(工作目录)、暂存区、本地仓库、远程仓库

工作区: 你可以对代码进行修改的那一部分; 暂存区 git add 之后  本地仓库 git commit之后  远程仓库 git push;

git操作

1、创建本地仓库(git init)

2、创建远程仓库(github) 注册账号—— 创建项目

3、本地环境配置与SSH配置

SSH 命令行 —— ssh-keygen   找到id_rsa.pub文件,将秘钥粘贴到github-settings-sshandGPGkeys 那一块;

本地环境配置——

git config --global user.name name 设置全局 用户名 

git config --global user.email email 设置邮箱

3、本地分支与远程分支建立关联

git remote add origin github创建的项目的地址,如:(https://github.com/angela-lm/slideshow.git,换成你自己的项目的地址);

git对项目进行操作;

本地仓库与远程仓库关联;

1、git remote -v 查看远程仓库;

2、git remote rename origin newName 远程仓库重命名;

基础工作流

git工作区及文件状态

1、git clone 仓库克隆

2、git add + 有修改的文件的文件名/ .  '.' 代表全部提交到暂存区

3、git status 查看当前文件的状态

4、git commit  -m ‘...’ 提交到本地仓库,‘...’ 对本次提交进行描述

5、提交内容到远程仓库 git push origin master

版本回退

git reset HEAD^ 回退到上个版本(commit结束);

git reset --soft HEAD^ 回退到这个版本暂存区(add完了但是没有commit)

git reset --mixed HEAD^ 回退到这个版本工作区(还没有add到暂存区)

git reset --hard HEAD^  回退到这个版本工作区(且工作区没有内容改变);

(HEAD ~ num) 或 (commit ID commit ID 可以在git log git reflog中查看)

差异比较

git diff 比较工作区与暂存区;

git diff --cached 比较暂存区与本地版本库中最近一次commit的内容;

git diff HEAD 比较工作区与本地库中最近一次commit的内容;

git diff <commit ID> <commit ID> 比较两个commit之间的差异;

历史操作

git reflog

分支操作

git branch 查看分支

git branch angela 创建分支angela

git checkout angela 切换分支

git checkout -b 'angela1' 创建angela1分支并切换到该分支

git merge angela1 将anglea1 分支与当前分支进行合并操作;

git push origin master:dev 将本地库中的master 分支推到远端仓库的dev分支(dev没有则新建分支);

文档查询

展示git命令大纲及常用命令

git --help

展示git命令大纲及全部命令列表

git help -a

展示具体命令说明手册

git help <command>

储藏 stash

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值