热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

java基础day46Git

Git1.Git介绍Git是一个开源的分布式版本控制系统,是LinusTorvalds为了帮助管理Linux内

Git

1.Git介绍

Git是一个开源的分布式版本控制系统,是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件,Git可以使用本地创建仓库与网络仓库,解决了集中管理型版本控制软件存在的一些问题(CVS、VSS、SVN)。

2.Git安装

双击 Git-2.9.2-64-bit.exe 文件,一直下一步即可。

3.Git使用

安装完成后,在任意的文件目录下,右键都可以开打Git的命令行窗口。

java基础-day46-Git
image.png

Git是分布式版本控制系统,所以需要填写用户名和邮箱作为一个标识,–global 表示全局属性,所有的git项目都会共用属性。

配置用户名

$ git config –global user.name “yaXXXX99”

配置邮箱

$ git config –global user.email “729XXXX02@qq.com”

java基础-day46-Git
image.png

此时在C:UsersAdministrator.gitconfig文件可以查看到我们的配置信息。

4.理解工作目录,暂存区,本地仓库

存储顺序:工作目录 –>> 暂存区 –>> 本地仓库

工作区(Working Directory):电脑上的本地硬盘目录,平时存放项目代码的地方。

暂存区(stage):用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息,一般存放在”git目录”下的index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。

本地仓库(Repository):工作区有个隐藏目录.git,它就是Git的本地版本库。

git的工作流程:

1、在工作目录中添加、修改文件;

2、将需要进行版本管理的文件放入暂存区域;

3、将暂存区域的文件提交到git仓库。

使用步骤:(首先设置电脑可以查看隐藏文件)

1.在任意位置创建空文件夹,作为项目目录,例如:在G盘右键创建git_repository文件夹

2.在项目文件夹内右键打开git bash窗口,输入命令: git init

java基础-day46-Git
image.png

此时git_repository目录下会生成一个隐藏的 .git 目录。

3.新建一个文件,例如:a.txt

4.输入命令:git add 文件名,此时是将文件添加到暂存区当中

5.输入命令:git status,查看暂存区状态

java基础-day46-Git
image.png

6.如需删除,可以输入命令:git rm –cached 文件名,此时是从暂存区中删除了,工作目录中还会存在该文件,删除之后再次查看,该文件名颜色已经发生变化

java基础-day46-Git
image.png

7.如需提交文件到本地库,输入命令:git commit ,提交完成后,会提示在文件中写一些备注(可写可不写),如需写可以使用i/a/o编辑文本(和Linux命令一样),然后保存并退出

java基础-day46-Git
image.png
java基础-day46-Git
image.png
java基础-day46-Git
image.png

另一种方式:使用git commit –m “注释内容”, 直接带注释提交

java基础-day46-Git
image.png

8.输入命令:git log 查看所有历史记录,输入命令:git log 文件名,查看该文件的历史记录

java基础-day46-Git
image.png

9.输入命令:git log –pretty=oneline 查看所有文件历史记录简易信息,输入命令:git log –pretty=oneline 文件名 查看该文件历史记录简易信息

java基础-day46-Git
image.png

10. 输入命令:git reset –hard HEAD^ ,回退到上一次提交

输入命令:git reset –hard HEAD~n,回退n次操作

输入命令:git reset 文件名,撤销文件缓存区的状态

java基础-day46-Git
image.png

11.输入命令:git reflog[文件名],查看历史记录的版本号

输入命令: git reset –hard 版本号

java基础-day46-Git
image.png

12.手动删除工作目录中的文件,然后输入命令:git checkout 文件名,可以恢复工作目录中已经删除的文件

java基础-day46-Git
image.png

13.手动删除工作目录中的文件,然后输入命令:git add 文件名 (此时该命令表示提交当前删除文件的操作)

然后输入命令:git commit -m “删除文件” (此时才是真正删除了该文件,但是此次删除只是这一次操作的版本号没有了,其他的都可以恢复)

java基础-day46-Git
image.png

恢复文件某个版本

java基础-day46-Git
image.png

5.分支相关操作

创建分支

输入命令:git branch

输入命令:git branch –v,查看分支

java基础-day46-Git
image.png

切换分支

输入命令:git checkout

java基础-day46-Git
image.png

切换到分支后,在分支下的操作,master(主线)不会有任何变化

java基础-day46-Git
image.png

此时在工作目录中可以查看到c.txt文件,但是当切换到master时,再去查看工作目录已经没有c.txt文件了

java基础-day46-Git
image.png

输入命令:git checkout –b ,将创建分支,切换分支一起完成

java基础-day46-Git
image.png

合并分支

输入命令:git checkout master,切换到主干

输入命令:git merge ,合并分支

java基础-day46-Git
image.png

此时在工作目录中又可以查看到c.txt文件了

冲突问题:当主线和分支合并之后,分支和主线都会有相同的文件,此时在主线中修改该文件内容并提交,在分支中也修改该文件内容并提交,再次合并时就会出现冲突,此时文件中会显示冲突内容,我们需要手动解决再合并了。

6.GitHub

GitHub是一个基于Git的面向开源及私有软件项目的托管平台。

官网:https://github.com/

登录官网 –>> 注册 –>> 邮箱确认 –>> 创建仓库

java基础-day46-Git
image.png

把本地仓库项目上传到GitHub上步骤:

增加远程地址

git remote add

是指远程链接的代号,一般直接用origin作代号,也可以自定义。

默认远程链接的url

例:git remote add origin https://github.com/xxxxxx.git

推送到远程库

git push

是指远程链接的代号。

是指要提交的分支名字,比如master。

例:git push origin master

java基础-day46-Git
image.png

提交完成之后,刷新浏览器,会显示工作目录提交的数据

java基础-day46-Git
image.png

从GitHub上克隆(复制)一个项目

git clone

是指远程链接的地址。

是指为克隆的项目在本地新建的目录名称,可以不填,默认是GitHub的项目名。

命令执行完后,会自动为这个远端地址建一个名为origin的代号。

例:git clone https://github.com/xxxxxxx.git 文件夹名

注意:在G盘下创建任意目录,然后右键打开git bash,再输入克隆命令

java基础-day46-Git
image.png

注意:如果是其他用户克隆项目之后,对项目进行了修改,然后想要推送到GitHub上时,需要当前用户授权才行!(例如:yangl2819想要对yangl7299的GitHub上的项目进行修改,需要yangl7299授权才行)

java基础-day46-Git
image.png

当前用户邀请其他用户成为伙伴时,需要其他伙伴同意,此时会发送一封邮件,需要其他用户登录网站进行同意,登录之后,拷贝邀请链接(邮件中最底部的链接),用浏览器打开,同意该邀请

java基础-day46-Git
image.png
java基础-day46-Git
image.png

成为合作伙伴之后就可以更新仓库中的项目文件了

git config 用于配置当前提交文件的用户信息,可以配置用户名以及邮箱

java基础-day46-Git
image.png

合作伙伴修改完文件之后,推送到GitHub中的仓库中,此时仓库中的文件内容已经发生变化,当前用户如果需要和GitHub中的已经更新的文件内容保持一致,则需要更新项目

从GitHub更新项目

git pull

是指远程链接的代号。

是指远端的分支名称,如master。

例:git pull origin master

打开当前用户的git bash 窗口,进行更新:

java基础-day46-Git
image.png

另一种情况:A,B都是该公司员工,可以共享同一个GitHub仓库,B无法解决项目中的问题,找C帮忙,C不是该公司员工,则只能查看该仓库,不能向仓库提交代码,如何来解决?

1.再创建一个新用户,然后登录,拷贝仓库地址(https://github.com/xxxxxxx.git),在浏览器执行,然后点击Fork,表示拷贝之前的仓库到该用户下

java基础-day46-Git
image.png

拷贝成功后如下:

java基础-day46-Git
image.png

此时,相当于在GitHub中有了两个相同的仓库,一个为master,一个为Fork,然后在磁盘再创建一个目录,在目录下右键git bash 打开新窗口,进行如下操作:

java基础-day46-Git
image.png

此时C把A仓库克隆下来之后进行了修改,然后又提交到了C自己的仓库,但实际运行的是A仓库中的代码,所以C需要向A发送请求,A需要同意请求,然后合并即可。

C发送请求:(首先刷新C当前浏览器页面,点击New pull requst)

java基础-day46-Git
image.png

确认发送请求

java基础-day46-Git
image.png

再次确认发送请求

java基础-day46-Git
image.png

此时请求已经发送,A登录后查看请求,若已登录可直接刷新当前浏览器页面

java基础-day46-Git
image.png

点击查看请求后,同意合并请求

java基础-day46-Git
image.png

再次确认合并

java基础-day46-Git
image.png

查看状态

java基础-day46-Git
image.png

7.IDEA中使用Git

java基础-day46-Git
image.png
java基础-day46-Git
image.png

本地项目推送到GitHub

第一种情况:如果需要在GitHub创建新的仓库,进行如下操作

java基础-day46-Git
image.png

第二种情况:GitHub上已经有仓库了,进行如下操作

java基础-day46-Git
image.png
java基础-day46-Git
image.png
java基础-day46-Git
image.png
java基础-day46-Git
image.png
java基础-day46-Git
image.png
java基础-day46-Git
image.png
java基础-day46-Git
image.png

从GitHub上下载项目

java基础-day46-Git
image.png

从GitHub上更新项目

java基础-day46-Git
image.png

Git****分支相关操作

java基础-day46-Git
image.png

创建分支,切换分支,切换主线

java基础-day46-Git
image.png

测试时,先切换到分支,然后添加代码,提交,然后再切换到主线,分支下添加的代码就不显示了

合并分支

java基础-day46-Git
image.png
java基础-day46-Git
image.png

推荐阅读
  • 云原生应用最佳开发实践之十二原则(12factor)
    目录简介一、基准代码二、依赖三、配置四、后端配置五、构建、发布、运行六、进程七、端口绑定八、并发九、易处理十、开发与线上环境等价十一、日志十二、进程管理当 ... [详细]
  • 2021最新总结网易/腾讯/CVTE/字节面经分享(附答案解析)
    本文分享作者在2021年面试网易、腾讯、CVTE和字节等大型互联网企业的经历和问题,包括稳定性设计、数据库优化、分布式锁的设计等内容。同时提供了大厂最新面试真题笔记,并附带答案解析。 ... [详细]
  • 2018年人工智能大数据的爆发,学Java还是Python?
    本文介绍了2018年人工智能大数据的爆发以及学习Java和Python的相关知识。在人工智能和大数据时代,Java和Python这两门编程语言都很优秀且火爆。选择学习哪门语言要根据个人兴趣爱好来决定。Python是一门拥有简洁语法的高级编程语言,容易上手。其特色之一是强制使用空白符作为语句缩进,使得新手可以快速上手。目前,Python在人工智能领域有着广泛的应用。如果对Java、Python或大数据感兴趣,欢迎加入qq群458345782。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 使用在线工具jsonschema2pojo根据json生成java对象
    本文介绍了使用在线工具jsonschema2pojo根据json生成java对象的方法。通过该工具,用户只需将json字符串复制到输入框中,即可自动将其转换成java对象。该工具还能解析列表式的json数据,并将嵌套在内层的对象也解析出来。本文以请求github的api为例,展示了使用该工具的步骤和效果。 ... [详细]
  • Java中包装类的设计原因以及操作方法
    本文主要介绍了Java中设计包装类的原因以及操作方法。在Java中,除了对象类型,还有八大基本类型,为了将基本类型转换成对象,Java引入了包装类。文章通过介绍包装类的定义和实现,解答了为什么需要包装类的问题,并提供了简单易用的操作方法。通过本文的学习,读者可以更好地理解和应用Java中的包装类。 ... [详细]
  • Python开源库和第三方包的常用框架及库
    本文介绍了Python开源库和第三方包中常用的框架和库,包括Django、CubicWeb等。同时还整理了GitHub中最受欢迎的15个Python开源框架,涵盖了事件I/O、OLAP、Web开发、高性能网络通信、测试和爬虫等领域。 ... [详细]
  • 本文介绍了Composer依赖管理的重要性及使用方法。对于现代语言而言,包管理器是标配,而Composer作为PHP的包管理器,解决了PEAR的问题,并且使用简单,方便提交自己的包。文章还提到了使用Composer能够避免各种include的问题,避免命名空间冲突,并且能够方便地安装升级扩展包。 ... [详细]
  • 本文介绍了操作系统的定义和功能,包括操作系统的本质、用户界面以及系统调用的分类。同时还介绍了进程和线程的区别,包括进程和线程的定义和作用。 ... [详细]
  • Java和JavaScript是什么关系?java跟javaScript都是编程语言,只是java跟javaScript没有什么太大关系,一个是脚本语言(前端语言),一个是面向对象 ... [详细]
  • 本文介绍了OkHttp3的基本使用和特性,包括支持HTTP/2、连接池、GZIP压缩、缓存等功能。同时还提到了OkHttp3的适用平台和源码阅读计划。文章还介绍了OkHttp3的请求/响应API的设计和使用方式,包括阻塞式的同步请求和带回调的异步请求。 ... [详细]
  • Centos下安装memcached+memcached教程
    本文介绍了在Centos下安装memcached和使用memcached的教程,详细解释了memcached的工作原理,包括缓存数据和对象、减少数据库读取次数、提高网站速度等。同时,还对memcached的快速和高效率进行了解释,与传统的文件型数据库相比,memcached作为一个内存型数据库,具有更高的读取速度。 ... [详细]
  • ejava,刘聪dejava
    本文目录一览:1、什么是Java?2、java ... [详细]
author-avatar
错2502857987
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有