1 参考教程
☆ git官方文档
https://git-scm.com/book/zh/v2
☆ 廖雪峰的git教程
https://www.liaoxuefeng.com/wiki/896043488029600
2.git的作用
git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
git 是 linus torvalds 为了帮助管理 linux 内核开发而开发的一个开放源码的版本控制软件。
git 与常用的版本控制工具 cvs, subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。
3.安装git
3.1 linux 系统下安装
一般linux系统都会自带git命令。
如果没有,使用如下命令安装即可:
sudo apt-get install git
3.2 windows 系统下安装
除官网下载安装程序外,一般还会下载小乌龟的图形界面客户端和语言扩展包。如下图:
安装完成后右键会出现如下几个选项(开始是英文):
在设置选项中更改成中文即可。
点击网络选项,设置下图的ssh路径,找git的安装路径(即第一个软件的路径),根据自己实际修改。完成后点击确定即可。
上面ssh客户端路径请一定选择正确,注意是usr/bin下的ssh.exe
3.3 使用gitbash终端
git bash是windows下模拟linux的终端,支持常用的linux命令,比如ls等。
点击右键菜单中的gitbash here选项,会弹出如下gitbash界面。
3.4 生成主机密钥
ssh-keygen-t rsa -c xxxx@xx.com
一路回车,直到命令执行结束。终端会提示生成密钥的路径。
id_rsa.pub文件的内容即对外公钥,可配置到远程服务器中,配置完成后往远程服务器推送即可不用每次再输入用户名和密码。
4.git管理区域
4.1 区域划分
☆ 工作区
即我们新建git仓库后在电脑上看到的目录,此区域内文件改动完全由我们自己掌控,git不进行备份管理,可以随时把新增工作区内容通过git命令删除或者增加到暂存区。
☆ 暂存区
暂存区是个比较虚拟的概念,可以理解为工作区和版本库之间的过渡,当用户想简单备份工作区内容,但又不想做版本提交,就可以将工作区内容暂时存放到暂存区,此区域的内容可方便的还原回工作区,或者作为正式版本提交到版本库。
☆ 版本库
git版本管理的核心,存储着每一个版本的备份。
☆ 远程库
远端服务器,即上文中提到的“中央服务器”,仅用来作为开发者之间的版本仓库同步使用。
5.git命令
5.1 基础命令
配置用户信息 gitconfig --global user.name zhangsan gitconfig --global user.email xxxx@xx.com 配置的信息用作提交版本时标识提交者用户名和邮箱地址。 查看当前配置 gitconfig -l 初始化仓库 git init 将工作区内容添加到暂存区 git add 查看仓库当前的状态 gitstatus 查看文件修改 git diff
5.2 版本控制
将暂存区的内容提交到版本库 gitcommit -m 版本修改信息 将暂存区内容放回工作区 gitreset head 将工作区内容丢掉 gitcheckout 查看当前版本以前的历史 git log 查看当前版本前后所有的历史 gitreflog 回退一个版本 gitreset --hard head^ 回退到某个版本 gitreset --hard
5.3 分支管理
创建新的分支 gitcheckout -b dev相当于gitbranch dev + git checkout dev两个命令的集合 列出所有分支并用*标注当前分支 git branch 切换回name分支 git checkout 把name分支合并到当前分支 git merge 删除name的分支 git branch -d
分支管理参考图
5.4 远程仓库 (常用代码托管平台)
☆ github
开源项目的聚集地,世界最大的代码托管平台。很多著名的项目都在github开源,比如linux源码、qt源码等。缺点:国内经常无法访问,速度比较慢。
☆ gitlab
gitlab支持公有仓库和免费的私有仓库,体验和github类似,常用作搭建的企业内网代码托管平台。公有仓库国内经常无法访问,速度比较慢。
☆ 码云
国内代码托管的老大,一个账号最多可以创建1000个项目,不分公有和私有。速度非常快,体验较好。但是单文件大小不能超过100m。
☆ 相关命令
克隆远程仓库 gitclone 本地推送到远程 git pushorigin 从远程拉取更新 git pull
☆ 配置别名
git config --global alias.st statusgit config --global alias.ci commitgit config --global alias.br branchgit config --global alias.ch checkout
6.tortoisegit使用
6.1 操作演示
克隆项目
撤销工作区修改
版本提交
拉取更新
推送更新
end
Infosys将收购领先的半导体设计服务提供商英世米
OPPO Find9真旗舰要来了?官网放预告了:超级闪充+5倍光学变焦!
车身5米4,标配ABS+EBD,不把汉兰达放眼里,起售价8万
高精度四合一土壤检测仪有哪些功能
小米12Pro上市时间和价格
关于Git教程解析
麦克传感器MFE600型一体式电磁流量计介绍
基于CAN总线系统的时间动态:CAN与CANopen的实时能力与局限性
全新直播声卡方案
创新微MinewSemi低能耗UWB模块怎么样
煤气管道焊缝泄露的处理措施
讯飞录音笔SR501是否适合做商务礼品?实用又极富科技感
服务器log日志大,掌握这些可正确快速定位错误!
如何实现ESP8266/ESP32自动下载电路
深度揭秘磁环电感电流大小怎么看
diy风力发电机制作
荣耀V9和荣耀V8哪个好?荣耀V9与荣耀V8区别在哪?
三种最受欢迎的短距离无线标准介绍
无线充电至今没有统一标准以及其优缺点分析
蔡力行:三星要追上台积电还有一段时间