版本管理 - Git 使用入门
2024-08-31 09:35:51
Git 是一个分布式的版本管理系统,而 SVN 是一个集中式管理系统。
版本控制
- Git与SVN的对比
对比 SVN Git 工作方式 集中式 分布式 文件管理 增量式 系统快照 权限控制 对团队中参与开发的人员进行权限控制 可接受团队外开发者贡献的代码并审核 - 版本控制工具分类
集中式版本控制工具(SVN、CVS)
缺点:服务器故障将产生单点故障分布式版本控制工具(Git、Mercurial、Bazaar...)
优点:本地具有完整版本历史
Git 简介
Git 资源
- 官网地址:https://git-scm.com
Git 优势
- 大部分操作在本地完成不需要联网
- 完整性保证
- 尽可能添加数据而不是删除或修改数据
- 分支操作非常快捷流畅
- 与 Linux 命令全面兼容
Git 结构
- 本地结构
- 本地结构
GitHub(代码托管中心)
- 局域网环境
- GitLab 服务器
- 互联网环境
- GitHub https://github.com/
- 码云 https://gitee.com/
- 局域网环境
本地库和远程库
团队内协作
团队外协作
命令行操作
本地库操作
本地库初始化
命令
git init
效果
注意:.git 目录中存放的是本地库相关的子目录和文件,不要删除和修改。
设置签名
- 形式
用户名:clxye
Email: chenlia2602@sina.com
- 作用:区分不同开发人员的身份
- 辨析:这里设置的签名和登陆远程库(代码托管中心)的账号、密码没有任何关系
- 命令
- 项目级别/仓库级别:仅在当前本地库范围内有效
// 设置本地账号信息
git config user.name clxye
git config user.emal chenlia2602@sina.com // 查看保存的信息
cat .git/config
- 系统用户级别:登陆当前操作系统的用户范围
// 设置系统账号信息
git config --global user.name clxye
git config --global user.emal chenlia2602@sina.com // 查看保存的信息
cat ~/.gitconfig
- 级别优先级
- 就近原则:项目级别优先于系统用户级别,二者都有时采用项目级别的签名
- 如果只有系统用户级别的签名,就以系统用户级别的签名为准
- 二者都没有不允许
- 项目级别/仓库级别:仅在当前本地库范围内有效
- 形式
状态查看操作
git status
查看工作区、暂存区状态
添加操作
git add [file name]
将工作区的 “新建/修改” 添加到暂存区
提交操作
git commit -m "commit message" [file name]
将暂存区的内容提交到本地库
查看历史记录
// 详细日志信息
git log // 简洁日志信息
git log --pretty=oneline // 最简洁日志信息(只显示当前及以前版本日志)
git log --oneline // 移动到当前版本需要多少步(显示所有日志)
git reflog
前进后退
// 基于索引值(只需包含 git log --oneline 中的hash值)
git reset --hard 9a9ebe0 // 使用^符号(只能后退,一个^后退一步,N个后退N步)
git reset --hard HEAD^ // 使用~符号(只能后退,后退n步)
git reset --hard HEAD~3
删除文件并找回
git
比较文件差异
git
命令帮助
git
远程库操作
Git 图形化界面操作
Gitlab 服务器环境搭建
最新文章
- 【SAP业务模式】之ICS(二):基础数据
- Leetcode Power of Two
- c#中抽象类(abstract)和接口(interface)的相同点与区别
- Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project LogTest: Compilation failure ->; [Help 1]
- BIEE从底层表结构向上更新
- 条款38:通过聚合设计has-a或者is-implemented-in-terms-of
- Java:多线程
- Java编程规范实践
- 【WinForm】线程中向listview添加数据
- power desinger 学习笔记<;二>;
- 平衡树(Splay):Splaytree POJ 3580 SuperMemo
- web UI
- js原生设计模式——2面向对象编程之继承—new类式继承
- leetcode — path-sum-ii
- BigDecimal的引入和概述
- Python实现下载文件的三种方法
- 因mybatis逆向工程而产生的问题
- cmd 安装mysql
- UML和模式应用1: 面向对象的分析与设计
- C语言程序内存的分区