Git教程之Git 基础
废话不多说了,看到好多git使用的还不是那么流畅的同学,所以写个教程贡献点力量。
推荐一个文档,挺不错的:https://git-scm.com/book/zh
Git 是什么?
Git 是版本控制系统。举个简单的例子,你写word或者ppt 的时候内容都会随着时间时间发生变化,git就是记录这种变化的系统。
Git 有三种状态,你的文件可能处于其中之一: 已提交(committed)、已修改(modified) 和 已暂存(staged)。
这会让我们的 Git 项目拥有三个阶段:工作区、暂存区以及 Git 目录。
工作区
工作区是对项目的某个版本独立提取出来的内容。 这些从 Git 仓库的压缩数据库中提取出来的文件,放在磁盘上供你使用或修改。
暂存区
暂存区是一个文件,保存了下次将要提交的文件列表信息,一般在 Git 仓库目录中。 按照 Git 的术语叫做“索引”,不过一般说法还是叫“暂存区”。
Git 仓库
Git 仓库目录是 Git 用来保存项目的元数据和对象数据库的地方。 这是 Git 中最重要的部分,从其它计算机克隆仓库时,复制的就是这里的数据。
基本的 Git 工作流程如下:
1.在工作区中修改文件。
2.将你想要下次提交的更改选择性地暂存,这样只会将更改的部分添加到暂存区。
3.提交更新,找到暂存区的文件,将快照永久性存储到 Git 目录。
以上是git基本的概念需要了解的内容,刚开始可能不是很理解,没关系,慢慢的实践当中会逐渐的熟悉的。
Git 基础
下面会以一个真是的git项目来演示。
git clone https://github.com/libgit2/libgit2
git clone
可以克隆远程仓库到本地。
基础操作
检查当前文件状态
git status
可以用 git status 命令查看哪些文件处于什么状态。
这说明你现在的工作目录相当干净,也就是说没有任何变动。
在状态报告中可以看到新建的 README 文件出现在 Untracked files 下面。
跟踪新文件
使用命令 git add 开始跟踪一个文件。 所以,要跟踪 README 文件,运行:
git add README
提交更新
git commit
这个命令会让你进入文本编辑器来输入提交说明:
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
# On branch master
# Your branch is up-to-date with 'origin/master'.
#
# Changes to be committed:
# new file: README
# modified: CONTRIBUTING.md
#
~测试提交
~
~
".git/COMMIT_EDITMSG" 9L, 283C
请记住,提交时记录的是放在暂存区域的快照。 任何还未暂存文件的仍然保持已修改状态,可以在下次提交时纳入版本管理。 每一次运行提交操作,都是对你项目作一次快照,以后可以回到这个状态,或者进行比较。
查看提交历史
git log
git log 会按时间先后顺序列出所有的提交,最近的更新排在最上面。
撤消操作
有时候我们提交完了才发现漏掉了几个文件没有添加,或者提交信息写错了。 此时,可以运行带有 --amend 选项的提交命令来重新提交:
git commit --amend
这个命令会将暂存区中的文件提交。 如果自上次提交以来你还未做任何修改(例如,在上次提交后马上执行了此命令), 那么快照会保持不变,而你所修改的只是提交信息。
文本编辑器启动后,可以看到之前的提交信息。 编辑后保存会覆盖原来的提交信息。
例如,你提交后发现忘记了暂存某些需要的修改,可以像下面这样操作:
$ git commit --amend
最终你只会有一个提交——第二次提交将代替第一次提交的结果。
取消暂存的文件
git reset HEAD CONTRIBUTING.md
取消某个文件暂存
git restore --staged text.txt
远程仓库的使用
查看远程仓库:
git remote -v
origin https://gitee.com/Pylar/gittest.git (fetch)
origin https://gitee.com/Pylar/gittest.git (push)
添加远程仓库
git remote add pb https://github.com/paulboone/ticgit
从远程仓库中抓取与拉取
git fetch
git fetch origin
如果你使用 clone 命令克隆了一个仓库,命令会自动将其添加为远程仓库并默认以 “origin” 为简写。 所以,git fetch origin 会抓取克隆(或上一次抓取)后新推送的所有工作。
推送到远程仓库
git push
git push origin master
Git 基础 - 打标签
创建标签
Git 支持两种标签:轻量标签(lightweight)与附注标签(annotated)。
附注标签
git tag -a v1.4 -m "my version 1.4"
git show v1.4
轻量标签
git tag v1.5
创建轻量标签,不需要使用 -a、-s 或 -m 选项,只需要提供标签名字
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了