【GiraKoo】Git工具使用指南
Git工具使用指南
Git是一个分布式版本控制工具,可以用于管理代码。本文介绍了如何使用git工具。
1. SVN和Git的区别
1.1 SVN
SVN是集中式版本控制工具,所有的代码都存储在一个中央服务器上。每个开发者都可以从中央服务器上获取代码,进行修改,然后再提交到中央服务器上。这样,中央服务器上的代码就是最新的代码。
优点:
- 中央服务器存储代码,可以方便地进行代码的管理和控制。
- 对于非技术人员来说,使用SVN比较容易上手。
- 仓库储存在中央服务器上,本地不需要全部下载,占用的本地存储空间较少。
- 可以通过权限控制,限制不同开发者对代码的访问和修改。
缺点:
- 需要依赖中央服务器,离线工作不方便。
- 分支管理和合并较为繁琐,需要手动进行操作。
- 不支持多种协议,如http、https、ssh等。
- 社区活跃度较低,可用的开源项目和插件相对较少。
1.2 Git
Git是分布式版本控制工具,每个开发者都有一个本地仓库,用于存储代码。开发者可以从中央服务器上获取代码,进行修改,然后再提交到本地仓库中。当开发者需要将代码提交到中央服务器时,可以将本地仓库中的代码推送到中央服务器上。
优点:
- 分布式管理,每个开发者都有一个本地仓库,可以离线工作,不需要依赖中央服务器。
- 可以有效地处理二进制文件,如图片、视频等。
- 分支管理和合并较为简单,可以方便地进行代码的并行开发和版本控制。
- 支持多种协议,如http、https、ssh等。
- 社区活跃,有大量的开源项目和插件可供使用。
缺点:
- 存储方式比较复杂,需要一定的学习成本。
- 对于非技术人员来说,使用Git可能会比较困难。
- 仓库会被全量同步到本地,占用大量的本地存储空间。
- 在同一套环境中切换分支,可能会产生冲突。
2. Git安装
在开始使用git之前,需要先安装git工具。可以从git官网下载安装包进行安装。
3. 创建本地仓库
使用git管理代码,需要先在本地创建一个git仓库。可以通过以下命令在本地创建一个新的git仓库:
git init <repository-name>
4. 添加文件到仓库
在本地仓库中添加文件,可以使用以下命令:
git add <file>
5. 提交文件到仓库
在本地仓库中提交文件,可以使用以下命令:
git commit -m "commit message"
6. 查看仓库状态
可以使用以下命令查看当前仓库的状态:
git status
7. 查看提交历史
可以使用以下命令查看提交历史:
git log
8. 撤销修改
8.1 git checkout
如果在修改文件后想要撤销修改,可以使用以下命令:
git checkout -- <file>
8.2 git reset --soft / --hard
此外还可以使用git reset将库整体进行充值。
9. 分支管理
git支持分支管理,可以使用以下命令创建和切换分支:
git branch <branch-name>
git checkout <branch-name>
10. git fetch
可以通过git fetch命令,将远程库的变更同步到本地库。注意,此时是更新到.git目录下的数据库中,并不会将变更同步到当前显示的文件中。如果希望当前显示的文件进行更新,需要和下面的git merge, git rebase, git pull等命令配合使用。
11. 合并分支
在git中,可以使用以下命令将一个分支合并到当前分支:
11.1 git merge
git merge会将两个分支的修改合并到一起,形成一个新的提交。这个新的提交会有两个父节点,分别指向被合并的两个分支。这种方式会保留原有的提交历史,但会产生很多无用的合并提交。
git merge <branch-name>
11.2 git rebase
git rebase会将当前分支的修改“移动”到目标分支的最新提交之后,形成一个新的提交。这个新的提交只有一个父节点,指向目标分支的最新提交。这种方式会改变提交历史,但会使提交历史更加清晰。
![imag
git rebase <branch-name>
11.3 git merge和git rebase的区别
git merge和git rebase都是用于合并分支的命令,但它们的实现方式不同。
git merge会将两个分支的修改合并到一起,形成一个新的提交。这个新的提交会有两个父节点,分别指向被合并的两个分支。这种方式会保留原有的提交历史,但会产生很多无用的合并提交。
git rebase会将当前分支的修改“移动”到目标分支的最新提交之后,形成一个新的提交。这个新的提交只有一个父节点,指向目标分支的最新提交。这种方式会改变提交历史,但会使提交历史更加清晰。
因此,如果需要保留原有的提交历史,可以使用git merge;如果需要使提交历史更加清晰,可以使用git rebase。但需要注意的是,使用git rebase会改变提交历史,可能会对其他人造成影响,因此需要谨慎使用。
12. git conflict
如果两个人基于同一个节点,提交了2个分支。合并时,将会发生冲突。
13. git cherry-pick
git可以将某一次提交的变更内容单独导出,成为一个patch。实现只将某一个提交移动到其他分支的能力。
14. git pull
默认模式下,git pull = git fetch + git merge。
git pull origin master
【GiraKoo】Git工具使用指南的更多相关文章
- Git命令使用指南
继续git相关的东西,网上很多讲解的,但是还是喜欢这个图:(爱屋及乌,当然内容也很好,文章链接:http://me.iblogc.com/2015/01/16/Git命令使用指南/) Git是软件开发 ...
- AutoConfig工具使用指南
转载:http://blog.csdn.net/fighterandknight/article/details/70245905 13.1. 需求分析 13.1.1. 解决方案 13.2. Auto ...
- 【转】第 02 天:在 Windows 平台必裝的三套 Git 工具
原文网址:https://github.com/doggy8088/Learn-Git-in-30-days/blob/master/docs/02%20%E5%9C%A8%20Windows%20% ...
- windows中使用Git工具连接GitHub(配置篇)
Git在源码管理领域目前占很大的比重了,而且开源的项目很多都转到GitHub上面了.例如:jQuery, reddit, Sparkle, curl, Ruby on Rails, node.js, ...
- Git详解之六 Git工具(转)
Git 工具 现在,你已经学习了管理或者维护 Git 仓库,实现代码控制所需的大多数日常命令和工作流程.你已经完成了跟踪和提交文件的基本任务,并且发挥了暂存区和轻量级的特性分支及合并的威力. 接下来你 ...
- Git详解之六:Git工具
Git 工具 现在,你已经学习了管理或者维护 Git 仓库,实现代码控制所需的大多数日常命令和工作流程.你已经完成了跟踪和提交文件的基本任务,并且发挥了暂存区和轻量级的特性分支及合并的威力.(伯乐在线 ...
- 使用git工具将项目上传到github
注册github账号 https://github.com/ 安装git工具: https://git-for-windows.github.io/ 上面的准备工作完成后,现在开始操作. 一.进入gi ...
- Git工具的使用教程
Git 是一种版本控制工具,也叫作版本管理软件(分布式管理软件).这里介绍Git的基本使用步骤,关于 Git 更详细的介绍,读者可以参考其官方网站提供的文档. 1 安装Git 在Ubuntu系统中安 ...
- 使用git工具快速push项目到github(精简)
Dear Weber ,相信有很多刚开始接触前端的程序猿,在刚接触到git工具传项目到github上时会遇到一些问题,那么下面的话呢,我就整理一下一个大致的思路提供给大家参考: 工具:git (自行下 ...
- git使用教程指南
前言 Git是一个开源的分布式版本控制系统.其核心就在于版本控制. 在实际编码过程中,我们往往会忘记上次对文件的修改内容.若是刚刚修改的还好说,撤销操作即可.但若这是你昨天做的修改并关闭了IDE呢 ...
随机推荐
- 基于LAMP搭建WordPress博客
1.安装Apache. 1)执行如下命令,安装Apache服务及其扩展包. yum -y install httpd mod_ssl mod_perl mod_auth_mysql 2)执行如下命令, ...
- Centos7 禁用IPV6地址的方法
方法 1 编辑文件/etc/sysctl.conf, vi /etc/sysctl.conf 添加下面的行: net.ipv6.conf.all.disable_ipv6 =1 net.ipv6.co ...
- 【RSocket】使用 RSocket(二)——四种通信模式实践
Source Code: https://github.com/joexu01/rsocket-demo 0. 四种通信模式 让我们来简单复习一下 RSocket 的四种通信模式: 即发即忘 - Fi ...
- 使用containerd搭建MinIO集群服务
概述 因为在云服务器上默认只有一块磁盘,如果直接在系统盘上安装MinIO,会被拒绝,所以这里采用containerd的方式绕过这一限制 操作环境 操作系统 CentOS 7.9 MinIO版本 REL ...
- CAS 单点登录系统
一.什么是单点登录 单点登录(Sign Sion On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一.SSO 的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系 ...
- Spring(Ioc和Bean的作用域)
Spring Spring为简化开发而生,让程序员只关心核心业务的实现,尽可能的不在关注非业务逻辑代码(事务控制,安全日志等). 1,Spring八大模块 这八大模块组成了Spring 1.1 Spr ...
- R语言网络数据爬取
现在大家对爬虫的兴趣不断高涨,R和PYTHON是两个非常有力的爬虫工具.Python倾向于做大型爬虫,与R相比,语法相对复杂,因此Python爬虫的学习曲线会相对陡峭.对于那些时间宝贵,又想从网上获取 ...
- 二进制安装Kubernetes(k8s) v1.22.10 IPv4/IPv6双栈
二进制安装Kubernetes(k8s) v1.22.10 IPv4/IPv6双栈 Kubernetes 开源不易,帮忙点个star,谢谢了 介绍 kubernetes二进制安装 后续尽可能第一时间更 ...
- Gpssworld仿真(二):并排排队系统模拟
4.3 某一个加油站能够配给三个级别的燃油:①家庭取暖用的燃油:②轻工业用的燃油:③运输用的燃油.每一级别的燃油都有一个对应的油泵.订单中燃油的数量在3000加仑和5000加仑中变化,每次增加10加仑 ...
- oracle数据对比--用户,索引,分区,dblink,同义词,视图
问题描述:需要对比用户数据一般在数据库迁移之后,需要对比一下两个库之间的差距,如果登上去一条命令的执行,去统计,就会比较麻烦,这里整理了一些脚本可用.通过创建dblink的方式快速查询,也可以整合到一 ...