git可视化工具TortoiseGit使用,让你不在纠结git命令!!!
1. git介绍
1.1. 版本控制系统
集中式版本控制系统
集中式版本控制系统,版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。
集中式版本控制系统最大的毛病就是必须联网才能工作,如果在局域网内还好,带宽够大,速度够快,可如果在互联网上,遇到网速慢的话,那就GG了.
分布式版本控制系统
分布式版本控制系统根本没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这样,你工作的时候,就不需要联网了,因为版本库就在你自己的电脑上。
既然每个人电脑上都有一个完整的版本库,那多个人如何协作呢?
分布式版本控制系统通常也有一台充当“中央服务器”的电脑,但这个服务器的作用仅仅是用来方便“交换”大家的修改,没有它大家也一样干活,只是交换修改不方便而已。
2. 创建本地版本库
版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。
2.1 概念
工作区
- 用户自己创建的目录 ,存放源代码等文件
- 本地的版本库也需要放到工作区中
- 每个工作区中都可以创建一个版本库
- 只有工作区的
新文件
才需要添加到暂存区
版本库
- 就是一个目录: .git
- 管理用于提交的代码
暂存区
首先,在工作区创建新文件 (和版本库没有关系)
将新文件添加到本地仓库中,新文件被保存在了暂存区 (还是没有进行版本管理)
将暂存区数据提交到版本库,这时候就可以进行版本管理了
暂存区也是一个目录: stage/index
提交代码的流程
- 要在工作区中创建新文件
- 将工作区中的新文件添加到暂存区
- 文件只需要往暂存区添加一次
- 将暂存区数据提交到版本仓库
- 版本仓库中有很多节点, 依次记录着我们提交的各个版本
2.2TortoiseGit 操作步骤
创建版本库
- 在工作区中鼠标右键
- 在工作区中鼠标右键
添加新文件到暂存区(git add)
- 在工作区右键菜单
- 在工作区右键菜单
提交文件到版本仓库(git commit)
- 鼠标右键
- 鼠标右键
3. 修改文件
修改工作区文件
- 修改完文件之后直接提交, 不需要再次添加到暂存区
修改完之后 的数据需要提交到本地的版本仓库中
还原修改
- 还原之后数据就不能再恢复了
- 还原之后数据就不能再恢复了
查看修改历史
- 比较当前查看的版本和上一个版本的区别
- 可以导出某一个需要的版本, 在当前版本上鼠标右键:
差异比较
删除文件
- 可以手动删除 -> delete 键
通过菜单项删除
- 注意事项:
删除操作之后必须要提交
4. 练习: 添加一个本地项目到仓库
设置文件忽略
先选中要忽略的文件, 在这些文件上鼠标右键
将设置忽略的动作提交到版本库
5. 添加远程仓库(github)
远程仓库作用:- 备份本地仓库的代码- 多人协同开发, 使用远程仓库合并代码
远程仓库来源:- 公司自己搭建- 使用现有的远程仓库- github- 码云
5.1 添加远程仓库
在线代码托管平台
- Github: https://github.com/
- 码云: https://gitee.com/
创建仓库
5.2 本地仓库同步到远程仓库
- 在工作区鼠标右键
5.3 克隆远程仓库到本地
进入到远程仓库中, 找到仓库的地址
将远程地址复制一份
在本地找一个目录, 进行如下操作
第一次需要将远程仓库内容下载到本地的时候, 才需要克隆
5.4 ssh设置
在本地生成一个密钥对
- 在本地任意目录下, 鼠标右键
$ ssh-keygen -t rsa
- 在本地任意目录下, 鼠标右键
- 本地设置ssh秘钥 -> 私钥
远程仓库设置公钥
进入当前用户的设置界面
使用ssh地址遇到的问题
解决方案:
需要修改tortoisegit 使用的 ssh工具
需要在 tortoisegit 设置窗口中进行修改
默认的路径
修改后的路径
6. 分支管理
6.1 创建分支
6.2 切换分支
6.3 合并分支
两个分支进行合并(master, new分支), 最终要合并到那个分支(master), 就先切换到那个分支(master), 切换完成之后, 在选择把哪个分支(new分支)合并到当前分支(master)
6.4 解决冲突
冲突文件的格式
手动修改文件内容, 修改完成之后, 解决冲突
7. 推送文件
有一个远程的仓库-> github, 这不是一个空的仓库, 需要将本地的版本库提交到远程仓库
直接推送 -> 失败
失败的原因:
- 远程仓库不是空的
- 有一个默认分支,
master
- 本地仓库, 不是空的
- 有一个默认分支,
master
- 远程仓库和本地仓库默认分支名字相同, 但是这两个分支没有任何关系
- 没有关系的分支进行合并 -> 失败
解决方案
- 将远程仓库拉取到本地(pull)
- 拉取: 直接将远程仓库分支中的信息和本地分支进行合并
- 获取: 将远程仓库分支复制到本地的另外一个分支中, 不会合并
- 分支名字: fetch_head
- 将两个分支进行强行合并
- 将本地分支数据推送动到远程仓库
- 将远程仓库拉取到本地(pull)
通过进行获取操作, 得到新分支
FETCH_HEAD
合并分支: 得到的新分支
FETCH_HEAD
分支合并到本地master
分支
将本地仓库推动到远程仓库
8. 使用最多的场景
远程仓库分支和本地仓库分支有关系的情况, 该如何操作?
- 本地:
- 修改代码提交到本地仓库
- 提交到远程仓库
- 不能直接提交
- 在推送之前应该将远程仓库代码
拉取
到本地
- 进程代码合并
- 有可能冲突 -> 手动解决冲突
- 将新的代码推动到远程仓库
git可视化工具TortoiseGit使用,让你不在纠结git命令!!!相关推荐
- git 可视化工具_最值得推荐的8个git/github项目数据分析工具
何重要的决定都应基于数据,对于信息项目和软件开发亦是如此.如果你不仔细查看描述项目演进的数据就无法了解项目的健康状况,并给出合理的改进措施.为了分析和挖掘这些信息,我们可以从Git存储库和项目所在的代 ...
- IDEA中Git及可视化工具TortoiseGit简单使用
Git教程 1. IDEA中git使用 1.1代码拉取 如果需要切换分支,可在项目上右键,Git中选择branches- 在弹出页面中,在远程分支模块中,移动到对应分支上点击checkout即可 1. ...
- Git可视化工具-SourceTree
1. 下载 官网的下载地址,可以根据自己的电脑操作系统选择合适的版本下载,我下载的是windows版本 Sourcetree | Free Git GUI for Mac and WindowsA G ...
- Git与Git可视化工具TortoiseGit-小乌龟安装和配置
一.Git下载安装 官网链接: https://git-for-windows.github.io/ 文件位置存储,可根据自己盘的情况安装 安装配置文件,自己需要的都选上,下一步 不创建启动文件夹,下 ...
- git可视化工具gitg和SmartGit
简介: 安装git 可视化工具gitg:可以在命令行里面的使用的可视化工具:在安利一个git可视化的客户端SmartGit(全平台) 文章目录 本博文的简述or解决问题? 同步博文: 安装gitg工具 ...
- Git可视化工具SourceTree的使用
我在前面几篇文章中详细介绍了Git命令行的使用< Git学习札记>< Git学习札记--进阶>,以及使用Xcode中自带的Git可视化工具的使用< Xcode中git的使 ...
- Git使用详解之可视化工具TortoiseGit
使用Git客户端:TortoiseGit 1.软件安装 1.1.软件准备 1.2.安装TortoiseGit(又称为小乌龟) 1.3.安装中文语言包 2.创建版本库 3.添加文件 3.1.创建文件,并 ...
- git 可视化工具_版本控制可视化神器Gource:简单易上手,效果恰似烟花秀
鱼羊 发自 凹非寺 量子位 报道 | 公众号 QbitAI 如此华丽的绽放,莫非是一场动画烟火秀? 非也,这其实是GitLab社区版的进化史,7年间82000次commit,尽皆在2.5分钟的视频内展 ...
- git 可视化工具_WEB开发者必备工具集
集成开发环境IDE JetBrains · JetBrains是一家捷克的软件开发公司,该公司旗下开发有多种语言开发的集成工具,包括: · WebStorm 智能HTML/CSS/JS开发工具 · P ...
最新文章
- WordCount案例
- 程序员的量化交易之路(35)--Lean之DataFeed数据槽3
- scalar parameter xxxxx created globally in function xxxx
- 【异或运算】 - 交换2个数
- 中文实体、关系抽取工具
- 颜宁:女性科学家如何更好的搞科研?
- Java ObjectInputStream registerValidation()方法与示例
- Java提高篇——静态代码块、构造代码块、构造函数以及Java类初始化顺序
- 002_关于six版本过低报cannot import name urllib_parse的问题
- 可以在函数中间打点了,以分析bpf_prog_load函数为例
- hibernate笔记4--qbc查询
- 全球半导体产业60年兴衰启示录!
- MATLAB周期时域曲线,matlab时域采样定理
- 如何获取网页logo(favicon.ico)
- 有关《家》的经典歌曲_著名音乐人-二十首最棒的励志歌曲推荐
- 项目分析 移动终端自助点餐系统
- R语言单因素方差分析及两两比较
- 独立开发变现周刊(第66期): 如何把一个短链接生成工具变成一个可持续盈利的产品?...
- SecureCRT自动保存日志设置
- 如何用C语言实现小游戏——扫雷
热门文章
- 电梯上行的一分钟里.....
- 图片上传时,QQ浏览器会弹出下载弹框的解决方案
- oracle jdk1.7 内存,JDK 16 正式发布,一次性发布 17 个新特性…不服不行!
- Javascript 计算中英文字符串长度
- 合击版本异地网关无法正常登录解决办法
- [深入研究4G/5G/6G专题-37]: URLLC-8-《3GPP URLLC相关协议、规范、技术原理深度解读》-2-网络架构、时延分析与URLLC载波部署形态
- 邯郸网络服务器机柜型号,珠海服务器机柜批发
- winU盘装Linux win32,2016221在Windows系统下利用Win32 Disk Imager制作Ubuntu server U盘系统...
- (干货)Linux学习资源推荐(文章来自严爬爬)
- XML代码的编写(一)