赞
踩
Git是分布式版本控制系统(Distributed Version Control System,简称 DVCS) ,分为两种类型的仓库:
本地仓库和远程仓库
本地仓库:是在开发人员自己电脑上的Git仓库
远程仓库:是在远程服务器上的Git仓库
Clone:克隆,就是将远程仓库复制到本地
Push:推送,就是将本地仓库代码上传到远程仓库
Pull:拉取,就是将远程仓库代码下载到本地仓库
很多人都知道,Linus在1991年创建了开源的Linux,从此,Linux系统不断发展,已经成为最大的服务器系统软件了。
Linus虽然创建了Linux,但Linux的壮大是靠全世界热心的志愿者参与的,这么多人在世界各地为Linux编写代码,那Linux的代码是如何管理的呢?
事实是,在2002年以前,世界各地的志愿者把源代码文件通过diff的方式发给Linus,然后由Linus本人通过手工方式合并代码!
你也许会想,为什么Linus不把Linux代码放到版本控制系统里呢?不是有CVS、SVN这些免费的版本控制系统吗?因为Linus坚定地反对CVS和SVN,这些集中式的版本控制系统不但速度慢,而且必须联网才能使用。有一些商用的版本控制系统,虽然比CVS、SVN好用,但那是付费的,和Linux的开源精神不符。
不过,到了2002年,Linux系统已经发展了十年了,代码库之大让Linus很难继续通过手工方式管理了,社区的弟兄们也对这种方式表达了强烈不满,于是Linus选择了一个商业的版本控制系统BitKeeper,BitKeeper的东家BitMover公司出于人道主义精神,授权Linux社区免费使用这个版本控制系统。
安定团结的大好局面在2005年就被打破了,原因是Linux社区牛人聚集,不免沾染了一些梁山好汉的江湖习气。开发Samba的Andrew试图破解BitKeeper的协议(这么干的其实也不只他一个),被BitMover公司发现了(监控工作做得不错!),于是BitMover公司怒了,要收回Linux社区的免费使用权。
Linus可以向BitMover公司道个歉,保证以后严格管教弟兄们,嗯,这是不可能的。实际情况是这样的:
Linus花了两周时间自己用C写了一个分布式版本控制系统,这就是Git!一个月之内,Linux系统的源码已经由Git管理了!牛是怎么定义的呢?大家可以体会一下。
Git迅速成为最流行的分布式版本控制系统,尤其是2008年,GitHub网站上线了,它为开源项目免费提供Git存储,无数开源项目开始迁移至GitHub,包括jQuery,PHP,Ruby等等。
历史就是这么偶然,如果不是当年BitMover公司威胁Linux社区,可能现在我们就没有免费而超级好用的Git了。
GitHub Gitee(码云) [开源] Gitlib
工作流程如下:
1.从远程仓库中克隆代码到本地仓库
2.从本地仓库中checkout代码然后进行代码修改
3.在提交前先将代码提交到暂存区
4.提交到本地仓库。本地仓库中保存修改的各个历史版本
5.修改完成后,需要和团队成员共享代码时,将代码push到远程仓库
=============================================================================
下载地址: https://git-scm.com/download
我使用的安装版本:Git-2.30.0.2-64-bit.exe
傻瓜式安装,一路下一步
86151@TJCU MINGW64 /
$ git version
git version 2.30.0.windows.2
#1.配置当前用户用户名
$ git config --global user.name “wanghj”
#2.配置当前用户邮箱
$ git config --global user.email “15120308630@163.com”
#3.查看配置信息
git config --list
因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址。你也许会担心,如果有人故意冒充别人怎么办?这个不必担心,首先我们相信大家都是善良无知的群众,其次,真的有冒充的也是有办法可查的。
注意git config
命令的--global
参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。
查看配置
$ git config --list
==========================================================================
进入目录中执行命令 git init (会生成隐藏文件夹.git–>不要操作)
vi HelloWord.java
提示:
红色(工作区有修改 并未添加到暂存区)
绿色(工作区的修改 已经添加到暂存区 并未提交到版本库)
3.nothing to commit, working tree clean
(工作区与版本库一致)
注意:git分区(工作区、暂存区、本地版本库、远程仓库)
git add Hello.java 将指定文件添加到暂存区
git add . 将目录所有文件添加到暂存区
$ git add HelloWord.java
86151@TJCU MINGW64 /f/gitHelloWord (main)
$ git status
执行命令 git status【变为绿色】
语法:git commit -m “当前版本描述信息”
例如:
$ git commit -m “新建了一个HelloWord类,包含主函数”
git config --global core.autocrlf false
git log
(多行展示一个版本)git log --pretty=oneline
(一行展示一个版本)git reset --hard HEAD^
回退上一个版本
git reset --hard HEAD^^
回退上N个版本 几个^^表示回退几个版本
git reset --hard commit_id
git reset --hard d6d7s7
使用命令 查看所有历史命令 git reflog
sataged翻译:阶段 restore:恢复
撤销暂存区操作:git restore --staged HelloWord.java
git restore HelloWord.java
工作区(Working Directory)
就是你在电脑里能看到的目录,比如我的
Git-repository
文件夹就是一个工作区:
版本库(Repository)
工作区有一个隐藏目录
.git
,这个不算工作区,而是Git的版本库。
Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支
master
,以及指向master
的一个指针叫HEAD
。
第一步是用git add
把文件添加进去,实际上就是把文件修改添加到暂存区;
第二步是用git commit
提交更改,实际上就是把暂存区的所有内容提交到当前分支。
因为我们创建Git版本库时,Git自动为我们创建了唯一一个master
分支,所以,现在,git commit
就是往master
分支上提交更改。
你可以简单理解为,需要提交的文件修改通通放到暂存区,然后,一次性提交暂存区的所有修改。
直接删除
使用命令删除 rm -f 文件
git add/rm 文件
git commit -m “提示信息”
分支就是科幻电影里面的平行宇宙,当你正在电脑前努力学习Git的时候,另一个你正在另一个平行宇宙里努力学习SVN。
如果两个平行宇宙互不干扰,那对现在的你也没啥影响。不过,在某个时间点,两个平行宇宙合并了,结果,你既学会了Git又学会了SVN!
用于管理个人代码,在所有人确认无误后汇总合并分支,平时在操作时分支之间互不干扰
master(主分支)
git branch dev
git branch
git checkout dev
git checkout -b dev
git checkout master
切换到最终合并的分支上
git merge dev
将merge后指定分支的修改合并到当前分支上
git branch -d dev
【注意:不能自己删自己】
==============================================================================
[ https://www.zhihu.com/question/387515137 了解代码托管平台 ]
GitHub是全球最流行的面向开源及私有软件项目的托管平台,有超过2600万的用户群体。随着越来越多的应用程序转移到了云上,GitHub已经成为了管理软件开发以及发现已有代码的首选方法。GitHub可以托管各种git库,并提供一个web界面,与其它代码托管平台不同的是GitHub的“分支”结构可以很容易地将某个项目的成功经验应用到另外与一个项目中。此外,GitHub还提供了针对企业私有云服务的GitHub企业版。
码云是开源中国社区团队推出的基于Git的快速的、免费的、稳定的在线代码托管平台。专为开发者提供的云端软件开发协作平台。无论是个人、团队、或是企业,都能够用码云实现代码托管、项目管理、协作开发。
GitLab是一个利用 Ruby on Rails 开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目安装。 拥有与GitHub类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。 团队成员可以利用内置的简单聊天程序(Wall)进行交流。它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。
自己在官网创建一个,要想使用码云的相关服务,需要注册账号(地址: https://gitee.com/signup )
首页–>仓库–> + [右上角] --> 新建仓库
填充仓库名称 和 简介 --> 选择开源
初始化仓库[测试随便选] java | jetBrains | OBSD
设置模板[测试随便选] 全部勾选
选择创建
开源许可证是一种法律许可。通过它,版权拥有人明确允许,用户可以免费地使用、修改、共享版权软件。
版权法默认禁止共享,也就是说,没有许可证的软件,就等同于保留版权,虽然开源了,用户只能看看源码,不能用,一用就会侵犯版权。所以软件开源的话,必须明确地授予用户开源许可证。
前面已经在码云上创建了自己的远程仓库,目前仓库成员只有自己一个人(身份为管理员)。在企业实际开发中,一个项目往往是由多个人共同开发完成的,为了使多个参与者都有权限操作远程仓库,就需要邀请其他项目参与者成为当前仓库的成员。
我们当前创建的Git远程仓库对应的地址为:https://gitee.com/wanghengjie563135/EMS.git
git@gitee.com:wanghengjie563135/git-test.git
语法:git clone 仓库路径
例如:git clone ``[git@gitee.com](mailto:git@gitee.com)``:wanghengjie563135/EMS.git
提示:Please make sure you have the correct access rights and the repository exists.
[请确保您拥有正确的访问权限并且存储库存在]
a、检查是否存在.ssh目录
位置:当前计算机用户主目录下 C:\Users\Administrator.ssh
b、检查.ssh目录中是否存在 id_rsa.pub 和 id_rsa 文件 【计算机远程访问公/私钥文件】
存在跳过,不存在生成对应文件
c、生成id_rsa.pub 和 id_rsa文件命令
ssh-keygen -t rsa
后续一直enter确认
cat ~/.ssh/id_rsa.pub
a、点击gitee右上角个人设置–>选择设置–>左侧导航栏选择 SSH公钥
b、标题随意 --> 公钥 [打开刚才生成的C:\Users\Administrator/.ssh/id_rsa.pub文件复制粘贴]–>输入登录密码
git clone ``[git@gitee.com](mailto:git@gitee.com)``:wanghengjie563135/EMS.git
git push -u origin master
[ -u:分支关联 origin:远程库的名字 master:本地分支名字]
git pull origin master
选择新建仓库–>填充仓库名称–>填充介绍–>选择开源–>选择创建
git init
#初始化仓库
git add .
#将项目的所有内容添加到暂存区
git commit -m "first commit"
#提交到本地版本库
git remote add origin ``[git@gitee.com](mailto:git@gitee.com)``:wanghengjie563135/vue.git
#当前仓库与远程仓库建立一个链接
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
俗话说,好学者临池学书,不过网络时代,对于大多数的我们来说,我倒是觉得学习意识的觉醒很重要,这是开始学习的转折点,比如看到对自己方向发展有用的信息,先收藏一波是一波,比如如果你觉得我这篇文章ok,先点赞收藏一波。这样,等真的沉下心来学习,不至于被找资料分散了心神。慢慢来,先从点赞收藏做起,加油吧!
另外,给大家安排了一波学习面试资料:
以上就是本文的全部内容,希望对大家的面试有所帮助,祝大家早日升职加薪迎娶白富美走上人生巅峰!
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。[外链图片转存中…(img-lTgjW3Hz-1713380203619)]
[外链图片转存中…(img-xAbBbOna-1713380203620)]
[外链图片转存中…(img-8G65h7ni-1713380203620)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
俗话说,好学者临池学书,不过网络时代,对于大多数的我们来说,我倒是觉得学习意识的觉醒很重要,这是开始学习的转折点,比如看到对自己方向发展有用的信息,先收藏一波是一波,比如如果你觉得我这篇文章ok,先点赞收藏一波。这样,等真的沉下心来学习,不至于被找资料分散了心神。慢慢来,先从点赞收藏做起,加油吧!
另外,给大家安排了一波学习面试资料:
[外链图片转存中…(img-WSdfU5Y5-1713380203620)]
[外链图片转存中…(img-svrxQ2jm-1713380203621)]
以上就是本文的全部内容,希望对大家的面试有所帮助,祝大家早日升职加薪迎娶白富美走上人生巅峰!
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。