什么是Git?
最近在学一些git的基础指令,仔细地了解了一下git,发现了他的强大功能,分享一下:
Git是一个强大的工具,它在软件开发中扮演着至关重要的角色。
Git是一个开源的分布式版本控制系统,由Linus Torvalds创建,用于有效、高速地处理从小到大的项目。Git是目前世界上最流行的版本控制系统,广泛应用于软件开发中。
Git的核心概念:
- 仓库(Repository):存储项目所有历史记录的地方,可以看作是项目的版本控制中心。
- 工作区(Working Directory):项目文件的本地存放区域,你可以在这里修改文件。
- 暂存区(Staging Area):当你准备提交更改时,可以使用git add命令将更改的文件添加到暂存区。
- 分支(Branch):Git允许你创建分支来开发新功能或修复bug,而不影响主分支(通常是master或main)。
- 合并(Merge):将一个分支的更改合并到另一个分支,通常是将分支的更改合并回主分支。
- 远程仓库(Remote Repository):通常托管在服务器上,如GitHub、GitLab或Bitbucket,用于多人协作和代码共享。
- 提交(Commit):记录项目历史的快照,每次提交都是项目状态的一个记录。
- 标签(Tag):用于标记特定提交的名称,通常用于版本发布。
Git的主要特点包括:
- 速度:Git在合并、分支、历史记录等操作时非常快速。
- 分布式架构:每个开发者的本地仓库都是一个完整的版本库,可以进行所有操作,不依赖于中央服务器。
- 数据完整性:Git通过SHA-1哈希算法保护代码和历史记录的完整性。
- 支持离线工作:开发者可以在本地进行大部分Git操作,不需要网络连接。
- 分支和合并:Git的分支操作简单,合并时可以自动合并大多数历史记录。
- 支持多种操作系统:Git可以在Linux、Unix、Mac、Windows等多种操作系统上运行。
- 支持大项目:Git高效地处理大型项目,如Linux内核项目。
Git通常与GitHub、GitLab或Bitbucket等远程仓库服务一起使用,这些服务提供了一个平台,让开发者可以共享代码、跟踪问题、管理合并请求等。
git指令练习-软件下载
在介绍git指令之前,推荐大家去git官网 https://git-scm.com/ 先下载可以本地操作的软件,安装过程简单,双击即可,步骤在下方:
以windows为例,下载下来是这样的,双击运行即可;
然后右键找到文件所在位置,将Git Bash这个快捷方式搬到桌面上就可以使用了;
测试一下,输入 git -v
如果可以正确的输出版本号信息,就是安装成功了。
另外,这个官网中还提供了很多git的图形化界面(GUI Clients),大家需要的话可以下载。
基本的git指令总结
查看git版本
git -v
添加个人信息 包括姓名,邮箱以及默认密码
git config --global user.name "zsl"
git config --global user.email xxx@gmail.com
git config --global credential.helper store
查看这些添加的信息
git config --global --list
这里需要对global这个参数进行说明:
省略(Local):本地配置, 只对本地仓库有效;
–global:全局配置,所有仓库生效
–system:系统配置,对所有用户生效 (一般不轻易使用system)
下面进行实例学习:
首先创建文件夹
mkdir learn-git
进入该文件夹
cd learn-git
创建仓库的两种方式:1.git init (本地) 2. git clone +链接 (远程)
ls -a
查看创建的.git文件
再次创建一个指定文件名的仓库:
git init my-repo
cd my-repo
查看仓库状态
git status
由于此时没有创建任何东西,所以会显示结果:
”On branch master No commits yet nothing to commit (create/copy files
and use “git add” to track) “
file1由未跟踪-已修改-已暂存的过程演示
先创建第一个文件
echo "这是第一个文件" > file1.txt
cat file1.txt
此时再次查看仓库状态会显示如下结果:
” On branch master No commits yet
Untracked files: (use “git add …” to include in what will be
committed)
file1.txt nothing added to commit but untracked files present (use “git add” to track) “
此时的文件还未被提交给仓库,还只是未被跟踪文件
将其提交给暂存区
git add file1.txt
此时再次查看仓库状态,显示结果如下:
” On branch master No commits yet Changes to be committed: (use “git
rm --cached …” to unstage)
new file: file1.txt “
但此时的文件还未被提交给仓库,只是被放在了暂存区
同样的,我们也可以创建一个file2.txt
echo "这是文件2的内容" > file2.txt
cat file2.txt
最后我们将file1提交给本地仓库
git commit -m "第一次提交"
-m 后面添加了一个语言提示,方便识别
此时再次查看仓库状态,显示结果如下:
”On branch master Untracked files: (use “git add …” to
include in what will be committed)
file2.txt nothing added to commit but untracked files present (use “git add” to track) “
此时file1已经被成功的提交给了本地仓库,但是由于我们没有给file2进行任何操作,因此其还是个未被跟踪文件。
此外,git也支持多文件同时提交,例如我们现在有文件3文件4文件5,三个文件已经被创建,我们可以一次性把这三个文件添加到暂存区
git add *.txt
当然,如果想把当前文件夹下的所有文件都添加到缓存区,可以:
git add .
此时如果想要全部提交到仓库,可以:
git commit
但是此时由于提交批量的文件,会进入vim编辑模式,只需要按下 i
进入编辑模式,同时在里面输入内容 ”这是第二次提交的内容“,然后按 esc
按键,退出编辑模式,在内容的末尾输入 : wq
, 保存并退出即可。
查看仓库提交历史记录
当所有的都提交了之后,我们可以查看仓库提交历史记录:
git log
输出结果如下:
”commit ef0fa20003be3174b161ef596cf3c25262721f92 (HEAD -> master)
Author: zsl xxx@gmail.com Date: Tue Jul 2 16:29:38 2024 +0800这是第二次提交内容
commit 8a0408aa2c807370f2d6ca443c51977751dc2fd3 Author: zsl
xxx@gmail.com Date: Tue Jul 2 16:02:38 2024 +0800第一次提交 “
会显示出提交人的详细信息
当然,我们也可以使用更简洁的日志输出形式:
git log --oneline
结果如下:
”ef0fa20 (HEAD -> master) 这是第二次提交内容
8a0408a 第一次提交 “
此时的两次提交进程ID也可以看到了。