Git教程:基础操作与版本管理
需积分: 5 195 浏览量
更新于2024-08-05
收藏 799KB PDF 举报
"Git使用记录-20211217"
Git是一个强大的分布式版本控制系统,主要用于管理和跟踪软件项目的源代码变更。它由Linux之父林纳斯·托瓦兹(Linus Torvalds)开发,旨在提高开发效率,提供更好的版本控制功能。Git的核心特性包括:
1. 分布式:每个开发者的本地机器都有一个完整的版本库,可以在本地进行提交、分支和合并等操作,无需联网。只有在需要同步时才与远程仓库交互。
2. 暂存区:Git引入了暂存区(Stage)的概念,允许用户分阶段地将文件添加到版本库,便于管理提交的内容。
3. 版本跟踪:Git关注的是文件的修改,而非文件本身,这使得版本管理更加高效。
Git的使用方法包括:
1. 创建版本库:通过`git init`命令在本地创建一个新的Git仓库,会生成一个隐藏的.git目录。
2. 将本地文件添加到git版本库:使用`git add <filename>`将文件添加到暂存区,`git add .`可将所有改动添加。
3. 提交更改:`git commit -m "commit message"`将暂存区内容提交到当前分支。
4. 添加远程库:`git remote add origin <remote_url>`将本地仓库与远程仓库关联,`origin`通常是远程仓库的默认别名。
5. 删除远程库:`git remote remove origin`可以删除远程库的关联。
分支管理是Git的重要部分:
1. 查看当前分支:`git branch`列出所有分支,加*表示当前所在分支。
2. 创建分支:`git branch <branchname>`新建分支,`git checkout -b <branchname>`创建并切换分支。
3. 创建+切换分支:`git checkout -b <new_branch>`一步到位。
4. 切换分支:`git checkout <branchname>`。
5. 合并分支:`git merge <branchname>`将指定分支的变更合并到当前分支。
6. 查看分支合并图:`git log --graph --oneline --all --decorate`显示分支合并历史。
7. 删除分支:`git branch -d <branchname>`(分支已合并)或`git branch -D <branchname>`(强制删除未合并的分支)。
此外,还有更新本地代码的操作:
1. `git fetch`获取远程仓库的最新信息,不自动合并。
2. `git pull`则同时执行`fetch`和`merge`,将远程分支合并到本地。
标签管理用于标记特定的提交时刻:
1. 创建标签:`git tag <tagname>`。
2. 以某次提交创建标签:`git tag -a <tagname> <commit_hash>`,-a表示创建带注释的标签。
3. 查看所有标签:`git tag`。
4. 查看标签信息:`git show <tagname>`。
5. 推送标签到远程:`git push origin <tagname>`或`git push --tags`推送所有标签。
6. 删除标签:`git tag -d <tagname>`(本地)和`git push origin :refs/tags/<tagname>`(远程)。
Git的优势在于其灵活性和高效性,与集中式的Subversion(svn)相比,Git更适合大型项目和分布式团队协作。在没有网络的情况下,开发者依然能正常工作,并在有网络时轻松同步。Git的这些特性使其成为现代软件开发不可或缺的工具。
2017-06-30 上传
150 浏览量
2023-09-07 上传
2023-04-01 上传
2024-03-28 上传
2023-04-07 上传
2024-03-21 上传
2023-04-10 上传
2024-03-27 上传
我有一只小神兽
- 粉丝: 45
- 资源: 24
最新资源
- 开源通讯录备份系统项目,易于复刻与扩展
- 探索NX二次开发:UF_DRF_ask_id_symbol_geometry函数详解
- Vuex使用教程:详细资料包解析与实践
- 汉印A300蓝牙打印机安卓App开发教程与资源
- kkFileView 4.4.0-beta版:Windows下的解压缩文件预览器
- ChatGPT对战Bard:一场AI的深度测评与比较
- 稳定版MySQL连接Java的驱动包MySQL Connector/J 5.1.38发布
- Zabbix监控系统离线安装包下载指南
- JavaScript Promise代码解析与应用
- 基于JAVA和SQL的离散数学题库管理系统开发与应用
- 竞赛项目申报系统:SpringBoot与Vue.js结合毕业设计
- JAVA+SQL打造离散数学题库管理系统:源代码与文档全览
- C#代码实现装箱与转换的详细解析
- 利用ChatGPT深入了解行业的快速方法论
- C语言链表操作实战解析与代码示例
- 大学生选修选课系统设计与实现:源码及数据库架构