Git安装与使用_git安装使用
一、简介
Git 是一个分布式版本控制系统(Distributed Version Control System,简称 DVCS),由 Linus Torvalds(Linux 内核的创始人)于 2005 年开发,用于高效管理项目代码的变更历史。它被广泛应用于软件开发、文档管理等地方。
1、Git 的核心特点
分布式管理
每个开发者都拥有完整的代码仓库(包括完整历史),不依赖中央服务器,支持离线工作。
可通过 git clone 复制整个仓库到本地。
高效的分支与合并
分支(Branch)轻量且创建快速,适合多人协作或实验性开发。
通过 git merge 或 git rebase 合并代码变更。
数据完整性
所有文件、提交(Commit)均通过 SHA-1 哈希算法校验,确保历史不可篡改。
灵活的协作模式
支持多种工作流(如 GitHub Flow、Git Flow)。
可与远程仓库(如 GitHub、GitLab、Gitee)交互(git push/git pull)。
2、Git 基本概念
仓库(Repository):存储项目代码及历史记录的目录。
提交(Commit):一次代码变更的快照,包含作者、时间、描述等信息。
分支(Branch):独立开发线,默认主分支通常为 main 或 master。
暂存区(Staging Area):临时保存待提交的变更(git add 后生效)。
远程仓库(Remote):托管在服务器上的共享仓库。
3、常用 Git 命令
命令
作用
git init
初始化新仓库
git clone
克隆远程仓库
git add
将文件加入暂存区
git commit -m \"消息\"
提交变更
git status
查看当前状态
git log
查看提交历史
git branch
列出分支
git checkout
切换分支
git merge <分支>
合并分支
git pull
拉取远程更新
git push
推送本地更新
4、Git 的优势
协作高效:多人并行开发,冲突解决机制完善。
历史追溯:可回退到任意提交版本(git reset/git revert)。
开源生态:与 GitHub、GitLab 等平台深度集成,支持 CI/CD。
5、Git语法练习网站
https://learngitbranching.js.org/?locale=zh_CN
二、安装Git
1、查看Git版本
rocky9.5自带Git2.47.1版本
git --version
2、编译安装Git新版本2.50.1
(1)卸载自带Git
dnf -y remove git
(2)下载源码包并解压
官网下载地址:https://www.kernel.org/pub/software/scm/git/
wget https://www.kernel.org/pub/software/scm/git/git-2.50.1.tar.xztar xf git-2.50.1.tar.xz
(3)进入源码目录配置编译安装
cd git-2.50.1/./configure --prefix=/usr/local/gitmake && make install
(4)设置环境变量
echo \"export PATH=/usr/local/git/bin:\\$PATH\" >> /etc/profilesource /etc/profilegit --version
(5)设置Git 的命令补全(Tab 补全)功能
复制 Git 补全脚本
cp /root/git-2.50.1/contrib/completion/git-completion.bash ~/.git-completion.bashecho \"source ~/.git-completion.bash\" >> ~/.bashrcsource ~/.bashrc
(6)安装man手册
下载对应版本的man手册包
wget https://www.kernel.org/pub/software/scm/git/git-manpages-2.50.1.tar.xztar xf git-manpages-2.50.1.tar.xzcp man1/* /usr/share/man/man1/cp man5/* /usr/share/man/man5/cp man7/* /usr/share/man/man7/
三、Git的使用
1、基础操作
(1)初始化Git仓库
mkdir /mygit #创建项目目录cd /mygit/git init #初始化 Git 仓库
查看目录结构
ls -a
cd .git/
解析:
config:当前仓库的本地配置(如远程仓库地址、用户信息等)
description:仓库描述
HEAD:指向当前所在的分支或提交
hooks/:存放 Git 钩子脚本(如 pre-commit、post-receive,可自定义自动化操作)
info/:包含全局忽略规则(exclude 文件,类似 .gitignore 但仅对当前仓库生效)
objects/:存储所有 Git 对象(提交、文件内容等,Git 的核心数据库)
refs/:存储分支和标签的指针(如 refs/heads/main 指向最新提交)
(2)设置用户信息(名称和邮箱)
git config --global user.name \"lkai\"git config --global user.email \"lkai@qq.com\"
(3)查看当前仓库状态
git status
(4)创建文件并添加到暂存区、提交更改
vim test.txt
添加:
a
git add test.txt #将文件添加到暂存区git status
git commit -m \"add new file test.txt\" #提交暂存区的更改
(5)撤销更改
- 生成多条提交数据
echo \"b\" >> test.txtgit add test.txtgit commit -m \"add b\"echo \"c\" >> test.txtgit add test.txtgit commit -m \"add c\"echo \"d\" >> test.txtgit add test.txtgit commit -m \"add d\"
- 回退到最近一次提交
git reset --hard HEAD^
- 回退到指定提交位置
git log #查看提交历史
git log --pretty=oneline #查看完整哈希 + 提交信息
git log --oneline #查看简洁版提交历史(简短哈希(前7字符)+提交信息)
git reset --hard 38210ee #回退到指定位置(初始)
.
(6)查看所有 HEAD 的移动历史(包括被删除的提交、重置操作等)
git reflog
(7)查看代码的差异变化
查看工作区改动(未 git add 的变更)
echo \"bb\" >> test.txtgit diff
vim test.txt
删除第一行的内容“a”
git diff
显示工作目录与暂存区的差异
红色 - 表示删除的行,绿色 + 表示新增的行
(8)删除还原
- 在工作区删除还原
rm -f test.txtgit status
git restore test.txt
- 删除后已添加到暂存区还原
rm -f test.txtgit rm test.txt
git status
git restore --staged test.txt
还没有还原
git status
git restore test.txt
- 删除后已提交到本地仓库还原
rm -f test.txtgit rm test.txtgit commit -m \"del test.txt\"git log --oneline
git reset --hard HEAD^ #回到未删除前的版本(上一个版本)
2、分支管理
(1)创建与切换分支
git branch #查看所有分支
git branch dev #创建新分支git checkout dev #切换到指定分支
“*“代表当前所在分支
git switch # (Git 2.23+) 更推荐的分支切换方式git checkout -b test #创建并切换到新分支
(2)合并分支
在test分支向test.txt文件中写入内容并提交
echo \"test\" >> test.txtgit add .git commit -m \"test add new line\"
切换到master分支将test分支合并到master分支
git switch mastergit merge test #将指定分支合并到当前分支
(3)删除分支
git branch -d test #删除本地分支(已合并的分支)
git branch -D #强制删除未合并的分支
3、远程仓库操作
(1)关联远程仓库
git remote add origin #关联远程仓库(通常命名为 origin)git remote -v #查看远程仓库信息
(2)推送与拉取
git push origin #推送本地分支到远程git pull origin #拉取远程分支并合并到本地git fetch origin #仅获取远程更新,不自动合并
(3)克隆与 Fork
git clone #克隆仓库到本地# Fork 是在 GitHub/GitLab 上操作,克隆后需手动添加 upstream:git remote add upstream #用于同步原仓库更新
4、标签(Tag)
git tag #查看所有标签git tag v1.0.0 #创建轻量标签git tag -a v1.0.0 -m \"版本1.0.0\" #创建带注释的标签git push origin v1.0.0 #推送标签到远程