版本控制Git使用
Git是一款分布式版本控制系统,由Linux内核缔造者林纳斯・托瓦兹于2005年开发。其主要用途是对软件开发过程中的代码版本进行管理,不过它也能对其他类型的文件版本加以管理。
介绍
核心特性
- 分布式
- 在Git中,每个开发者的本地仓库都完整包含了代码库及其版本历史。
- 开发者可以在离线状态下开展工作,并且在本地进行提交、分支创建与合并等操作。
- 高效性
- Git针对性能进行了优化,能够快速处理大型项目和大量的提交历史。
- 数据完整性
- Git采用
SHA-1
哈希算法来确保数据的完整性。 - 每一次提交、文件内容等都会生成一个唯一的哈希值,一旦数据发生改变,哈希值也会相应改变。
- Git采用
- 分支与合并
- Git支持轻松创建和管理分支,这使得开发者可以并行开发不同的功能或修复不同的问题。之后,这些分支可以方便地合并到主分支。
应用场景
- 软件开发
- Git的主要应用场景,团队成员可以协同开发,管理代码的不同版本和分支。
- 文档管理
- 对于多人协作编写的文档,如技术文档、书籍等,Git可以有效管理版本和修改记录。
- 开源项目
- 众多开源项目都使用Git进行版本控制,方便全球的开发者共同参与项目开发。
相关工具与平台
- Git客户端
- Git Bash(Windows),为用户提供了命令行或图形化的操作界面。
- 远程仓库托管平台
- GitHub、GitLab、Gitee等,它们提供了代码托管、协作开发、问题跟踪等功能
使用
git下载
常用操作命令
- 仓库初始化
git init
在本地目录创建一个新的Git仓库
- 克隆仓库
git clone url
从远程仓库复制一份代码到本地git clone -b url
从远程仓库指定分支复制一份代码到本地
- 添加文件
git add filePath
将指定文件添加至暂存区git add .
添加当前项目下所有修改文件至暂存区
- 提交更改
git commit -m "提交信息"
用于将暂存区的文件提交到本地仓库git commit --amend
用于追加提交
- 查看状态
git status
查看当前项目和暂存区的状态
- 查看提交历史
git log
查看提交历史记录,便于回退代码
- 分支操作
git branch
查看本地分支git branch branchName
创建新分支git checkout branchName
切换到指定分支git merge branchName
将指定分支合并到当前分支
- 与远程仓库交互
git push origin master
把本地仓库的提交推送到远程仓库git push origin HEAD:refs/for/master
把本地仓库的提交推送到远程仓库git pull
从远程仓库拉取最新代码并合并到本地
高级用法
-
git新建分支代码提交
- 1.新建分支:xxx_20250410
- 2.克隆代码:
git clone -b xxx_20250410 git地址
- 3.提交代码:
git add .
、git commit -m "msg"
- 4.push代码:
git push origin xxx_20250210:refs/for/xxx_20250210
或git push origin HEAD::refs/for/xxx_20250210
-
git提交代码时,git前有一笔网页修改代码,pull后提交新代码,审核后submit无法合入,解决方案
- 1.git log:查看本地提交记录(commitId)
- 2.git reset 40e2abe6d409c68a...:回退至本次提交前代码状态,可用git status查看此时状态
- 3.git stash:暂存本地修改
- 4.git rebase origin/master:更新本地代码至代码仓master最新代码
- 5.git stash pop:取出缓存中暂存的修改文件,有冲突解决冲突
- 6.执行git命令重新提交代码
-
git commit相关问题
- 回退
git commit
后代码,使用git reset --soft HEAD^
- 若使用
git commit --amend -m "xxx"
,回退后需git pull
下,恢复下上次提交
- 回退
-
git commit -m "#2xxx"
报错:file is empty: .git/COMMIT_EDITMSG
- 原因:commit信息不能#号开头
-
git commit --amend使用
- 已提交至git仓代码经审核存在问题需要修复时,避免回退代码使用该指令追加提交
- 已提交至git仓代码有扫描问题时,追加修复扫描问题
- git log查看提交记录时,若使用
git commit
+git commit --amend
,只会看到最后一次的--amend
记录,会覆盖前一条commit
提交记录- 若想查看可使用
git reflog
查看 - 回退可使用
git reset --hard commitId
- 若想查看可使用