| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 开发工具 -> Git使用核心内容学习 -> 正文阅读 |
|
[开发工具]Git使用核心内容学习 |
目录 error: src refspec main does not match any Please make sure you have the correct access rights and the repository exists. 前言:发展过程:Git最初是由Linux开发者Linus用了仅仅两周时间纯C语言编写而成,在编写完成之后就立马上手接管Linux源代码,不过在此之前Linux是由BitMover公司开发的BitKeeper分布式版本控制系统所管理源代码,它是商业收费的分布式版本控制器,但BitMover公司看中Linux开源精神,免费授权给Linux社区使用,在2002年时,Linux开始使用BitKeeper分布式版本控制系统管理源代码,但好景不长,有一天Linux社区成员Andrew(samba(局域网共享文件c/s程序)的作者)试图破解BitKeeper共享给所有人使用,被BitMover公司发现并收回了免费使用的版权,随后Linus就用了两周时间开发出了git(两周时间包括测试),也就是目前为止最好用的分布式版本控制系统。 大名鼎鼎的github用的就是git系统来管理它们的网站,这里需要区分一下,github和git是两个东西,github是一个社区,git是一个服务系统,github只支持git分布式系统,所以故名成为github。 集中式与分布式的区别:除了git还有svn、cvs这样的版本控制系统,它们的区别在于一个是分布式一个是集中式 集中式就是svn和csv这样的版本控制系统,分布式是git 区别在于集中式的版本控制系统每次在写代码时都需要从服务器中拉取一份下来,并且如果服务器丢失了,那么所有的就都丢失了,你本机客户端仅保存当前的版本信息,换句话说,集中式就是把代码放在一个服务器上集中管理,你的所有回滚等操作都需要服务器的支持。 分布式的区别在于,每个人的电脑都是服务器,当你从主仓库拉取一份代码下来后,你的电脑就是服务器,无需担心主仓库被删或者找不到的情况,你可以自由在本地回滚,提交,当你想把自己的代码提交到主仓库时,只需要合并推送到主仓库就可以了,同时你可以把自己的代码新建一份仓库分享给其它人。 像集中式它们都有一个主版本号,所有的版本迭代都以这个版本号为主,而分布式因为每个客户端都是服务器,git没有固定的版本号,但是有一个由哈希算法算出的id,用来回滚用的,同时也有一个master仓库,这个仓库是一切分支仓库的主仓库,我们可以推送提交到master并合并到主仓库上,主仓库的版本号会迭代一次,我们客户端上的git版本号无论迭代多少次,都跟master无关,只有合并时,master才会迭代一次。 Git优点:分布式版本控制系统:服务器保存文件的所有更新版本,客户端是服务器的完整备份。 联网运行,支持多人协作开发,客户端断网后支持离线本地版本更新,服务器故障后,可以使用任何一个客户端的备份进行恢复 git是一个开源的分布式版本控制系统。 特性:直接记录快照,而非差异比较,近乎所有操作都是本地执行。 git快照是在原有文件版本基础上重新生成一份新的文件,类似于备份。如果文件没有修改,git不在重新存储文件,而是只保留一个链接指向之前存储的文件。空间换时间 git大多数操作只需访问本地文件和资源,一般不需要来自网络上其他计算机的信息。 git管理项目拥有三个区域分别是:工作区,暂存区,Git仓库。 git的三种状态:已修改,已暂存,已提交。 核心命令:配置Git:百度搜索:Git (git-scm.com?https://git-scm.com/ 下载完成后一直点击next按键安装后,在所需操作文件下右键鼠标显示: ?配置Git环境:参数讲解:
初次使用git需要设置你的用户名以及邮箱,这将作为当前机器git的标识,如果你用它来下载远程仓库一些需要登录权限的仓库会要求登录,git默认使用配置邮箱以及用户名登入,但会要求你手动输入密码 用户名配置:
邮箱配置: user代表用户,.email代表配置用户的邮箱
创建本地空仓库:
将尚未进行版本控制的本地目录转换为Git仓库。 查看仓库状态:
使用git status也可以查看当前文件的状态 英文对应: A:未修改 AM:修改 Untracked:未提交 modified:新文件,但未提交 如果提交了的文件,且没有改动的,不会显示到这个里面 注:git status -s或--short 可以以精简的方式查看文件处于什么状态 新建文件添加到本地仓库 :
git add命令开始跟踪一个文件并放在暂存区,可以把已跟踪的,且已修改的文件放到暂存区,把有冲突的文件标记为已解决状态。 ?git commit -m进行提交后面添加-m用来对提交的内容进一步的描述将暂存区的内容转换为git 仓库中 总结步骤: 将所有改动文件添加到缓存区:
注:这个命令会将当前目录下包括子目录下所有改动的文件提交到暂存区,注意只包括改动的文件,不改动的不会放到缓存区。 这个命令还会把删除的文件也提交进去 查看单个文件可回滚版本:
会按时间先后列出所有的提交历史 查看最近的两条信息:git log -2 命令 在一行上展示最近两条提交历史信息:git log -2 --pretty=oneline 命令 在一行上展示最近两条提交历史信息,并自定义输出格式:git log -2 --pretty=format :"%h | %an |%ar | %s" 命令按照时间的格式输出显示 回退到指定版本:?git reset --hard <CommitID>根据指定的提交ID回退带指定的版本 查看提交历史:
git reflog可以查看当前版本库的提交历史,凡是对仓库版本进行迭代的都会出现在这个里面,包括你回滚版本都会出现在这个历史中 删除文件:
使用git rm删除文件,但是也需要使用git commit提交一次 注:如果我们使用普通的命令,rm删除文件,git状态会提示你删除了文件,你只需要使用add重新提交一次就可以了。 GitHub的使用:GitHub开源相关概念:开源许可协议:
?注:GPL具有传染性的一种开源协议:不允许修改后和衍生的代码作为闭源的商业软件发布和销售 项目有:Linux?。 MIT是限制最少的协议,唯一条件是修改后代码或者发行包中,必须包含原作者的许可信息 项目有:jQuery和node.js 。 开源的优点:
开源项目托管平台:GitHub,Gitlab,Gitee。只能托管Git管理的项目源代码 github是一款使用git命令作为基础框架的网站,它是一款开源分享网站,你开源把你的源代码放到github上,然后让人来start给你小星星,小星星越多代表你的项目越具有影响力,很多公司面试如果你有一个很多星星的项目,会大大提升你的录取率。 你也可以把你的一些项目分享到github上保存,github上是无限制代码的。 访问GitHub方式:HTTPS和SSH ?基于HTTPS将本地仓库上传到GitHub: ?SSH作用:实现本地仓库和GitHub之间的免登录的加密数据传输 ?配置SSH key : ?检测GitHub的SSH是否配置成功: ?基于SSH 将本地的仓库上传到GitHub上: ?将远程仓库克隆到本地:
打开git bash输入git clone 远程地址 命令 分支操作:主分支:?功能分支:?查看分支:
如果要查看当前所有分支可以使用:git branch -a HEAD指向当前分支 分支名字前面的*号表示当前所处的分支 ?创建新分支:
? ? 切换分支:
分支的快速创建和切换:
注:-b 表示创建一个新分支 ?合并分支:
注:当我们新建分支并做完工作之后,想要把分支提交至master,只需要切换到master仓库,并执行git merge 分支名就可以了。需要注意的是先要切换到主分支上执行命令 ?删除本地分支:
注:需要注意的是要先切换到主分支再执行命令 ?遇到冲突时的分支:注:需要手动打开文件进行更改。 ?将本地分支关联到远程仓库:需要先进行关联本地仓库和远程仓库: 我们本地有一个仓库,我们想把它推送到远程上去,很简单,我们只需要使用git remote add origin命令就可以了,ongin是github上的仓库名称,意思是远程仓库的意思。 首先选择仓库的code找到github生成的远程仓库链接
跟踪分支:?拉取远程分支最新的代码:
将远程仓库中修改的代码更新到本地分支中 删除远程分支:
Git 命令总结:
本文章借鉴了CSDN17岁boy想当攻城狮的部分内容。 相关的Git问题总汇可查看:error: src refspec main does not match anyPlease make sure you have the correct access rights and the repository exists. |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 20:48:46- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |