Git基础
Git分布式版本管理系统
Gitlab 私有代码管理
Githua 公有代码管理
1,安装git
系统环境
yum -y install git
yum安装版本为1.8版本,生产最好编译安装,参考:Git源码安装
2,配置信息
git config --global user.name "liuyueming"
git config --global user.email "274670459@qq.com"
通过命令查看配置信息
git config --list
git工作的四个区域
四种状态
Untracked:未被追踪的文件,还没有被纳入版本管理
Stage: 暂存区
Unmodified: 未被修改的状态,commit以后保存在本地仓库里面
modified: 编辑以后就变成修改状态
常用命令
git分支管理
创建分支about
1 | git branch about |
查看分支(没有切换指针还在master分支)
1 | git branch |
切换分支
1 | git checkout about |
开发一个about模块
1 | vim about.html |
提交
1 2 | git add about.html git commit - m "add about.html" |
切换到master分支的提交还是停留在之前的提交
删除分支
1 | git branch - d about |
合并分支(需要切换到master上面合并about分支)
1 | git merge about |
查看log就有了分支about的提交信息
查看哪些分支被merge过来
1 | git branch - - merged |
查看哪些分支没有被merge过来
1 | git branch - - no - merged |
PS:如果是新建一个分支没有提交因为没有信息所以不会显示在--no-merged,除非有提交
撤销对文件的修改
1 | git checkout - - file .ext |
修改一个文件,在没有add之前可以使用该命令撤销刚才的修改
git高级管理
git reset回滚
修改index.html和new.html文件并且add一下new.html文件,查看状态
news.html在缓存区可以通过以下命令撤出缓存区
1 | git reset HEAD news.html |
git本地与远程图示
3,创建版本库
mkdir /learngit
cd /learngit
进入新建目录用过git init命令把这个目录变成Git可以管理的仓库
git init
生成隐藏文件 .git用来跟踪管理版本库
4,把文件添加到版本库
所有的版本控制系统,其实只能跟踪文本文件的改动,比如TXT文件,网页,所有的程序代码等等,Git也不例外。
要求所有文档都是纯文本格式
编写一个readme.txt
1 2 | This is my learn git Git is goog |
第一步 用命令git add告诉Git,把文件添加到仓库
没有任何提示
第二步 用命令git commit告诉Git,把文件提交到仓库
PS:-m后面添加注释,最好每次都详细描叙修改内容
也可以一次性提交多个文件
1 2 3 | $ git add file1.txt $ git add file2.txt file3.txt $ git commit - m "add 3 files." |
5,修改文件
修改readme.txt增加一个单词distributed
运行git status命令看结果
1 2 3 4 5 6 7 8 9 | [root@salt - master learngit] # git status # 位于分支 master # 尚未暂存以备提交的变更: # (使用 "git add <file>..." 更新要提交的内容) # (使用 "git checkout -- <file>..." 丢弃工作区的改动) # # 修改: readme.txt # 修改尚未加入提交(使用 "git add" 和 / 或 "git commit -a" ) |
以上命令提示告诉我们文件被修改过但是没有被提交
使用git diff 查看修改内容
1 2 3 4 5 6 7 8 | diff - - git a / readme.txt b / readme.txt index 4538fec .. 72c720c 100644 - - - a / readme.txt + + + b / readme.txt @@ - 1 , 2 + 1 , 2 @@ - This is my learn git + This is my learn git distributed Git is goog |
提交
git add readme.txt
git commit -m "add distrabuted"
6,版本回退
git log查看每次修改信息
git log --pretty=oneline 查看版本号
版本回退
git reset --hard HEAD^
在查看版本状态
怎么回到删除的那个版本呢
git reset --hard 6340f7
PS:要知道版本号,不需要写全,Git会自动去找,也不能太短了,一般6位够了。Git的版本回退速度非常快,因为Git在内部有个指向当前版本的HEAD
指针,当你回退版本的时候,Git仅仅是把指向改变。
如果回退了某个版本但是,又想恢复到最新版本,但是忘记记录版本号怎么办,使用git reflog命令记录每一次命令。
小结
-
HEAD
指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id
。 -
穿梭前,用
git log
可以查看提交历史,以便确定要回退到哪个版本。 -
要重返未来,用
git reflog
查看命令历史,以便确定要回到未来的哪个版本。
7,工作区和暂存区
工作目录learngit就是一个工作区
使用git add把文件添加进去,实际上是把文件修改放置到暂存区
使用git commit,实际上是把暂存区的所有内容提交到当前分支,默认当前分支为master
8,管理修改
Git跟着并管理的是修改,而非文件
所有修改必须先git add 提交到暂存区才能git commit 及git commit只能是暂存区的文件
如果修改文件但是没有首先git add直接git commit 会出现以下提示
9,撤销修改
一,修改readme.txt内容如果发现改错了,还没有添加到缓存区,使用git checkout --file放弃修改,相当于撤销
修改readme.txt文件添加内容
发现修改错了使用命令放弃修改
1 | git checkout readme.txt |
查看刚刚添加的test没有了
二,如果已经提交到缓存区使用git reset HEAD file退出缓存区,再执行第一步操作
三,已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退,不过前提是没有推送到远程库
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!