目录
一、Git 概述
1、版本控制
2、版本控制优点
3、Git 工作机制
4、Git 和代码托管中心
二、Git安装
三、Git 常用命令
1、设置用户签名
2、常用指令
四、Git 分支操作
五、Git 团队协作机制
1、团队内协作
2、跨团队协作
六、远程库1--GitHub 操作
github的SSH 免密登录
七、IDEA 集成 Git
7.1 配置 Git 忽略文件
7.2、在IDEA中定位Git
八、IDEA集成Gitee和Github
8.1、添加Gitee账号
8.2、将本地代码push到码云远程仓库
8.3、将远程仓库代码pull到本地
8.5、码云复制Github项目
8.6、 从远程仓库克隆项目
8.7、IDEA中的Git的log信息
一、Git 概述
1、版本控制
版本控制是一种记录文件内容变化,以便将来查阅特定版本修订情况的系统。
版本控制其实最重要的是可以记录文件修改历史记录,从而让用户能够查看历史版本,
方便版本切换
2、版本控制优点
3、Git 工作机制
4、Git 和代码托管中心
代码托管中心是基于网络服务器的远程代码仓库,一般我们简单称为远程库。
- 局域网
- GitLab
- 互联网
- GitHub(外网)
- Gitee 码云(国内网站)
二、Git安装
官网地址: Git官网地址下载最先版
一路傻瓜式安装即可。
右键任意位置,在右键菜单里出现Git Bash Here Git GUI Here 即安装成功
注意:你需要哪个文件夹目录(比如项目目录)进行版本控制,你就打开相应的文件夹(里面时具体要托管的文件)右击,选择Git Bash Here,进入git终端。首先初始化该文件夹为一个Git本地库:使用命令git init
三、Git 常用命令
1、设置用户签名
签名的作用是区分不同操作者身份。用户的签名信息在每一个版本的提交信息中能够看
到,以此确认本次提交是谁做的。 Git 首次安装必须设置一下用户签名,否则无法提交代码
git config --global user.name 用户名
git config --global user.email 邮箱-----可以随便,Git不检查格式
2、常用指令
git init
将某个文件夹目录,当作托管的本地库:使用命令git init。
git status 查看本地库状态指令:
1、首次查看(工作区没有任何文件)
2、新增文件( hello.txt )或者改变本地库任意文件后,再次查看
检测到未追踪的文件:
3、 添加暂存区 git add 文件名
git add hello.txt 将hello.tet文件添加到本地库的暂存区:即可以追踪它了,此时可以撤销修改,未提交呢
4、提交本地库 将暂存区的文件提交到本地库
git commit -m " 日志信息 " 文件名
日志信息:这次修改操作的说明,以识别这个版本做了什么修改
查看状态(没有文件需要提交)如果此时再次修改hello.txt文件,则会出现 (检测到工作区有文件被修改)
将修改的文件再次添加暂存区,再次commit,添加这次修改的说明
5、git reflog 查看版本信息 git log 查看版本详细信息
6、版本穿梭:
git reset --hard 版本号
1、首先查看当前的历史记录,可以看到当前是在
087a1a7这个版本
2、切换到 86366fa 版本,也就是我们第一次提交的版本
注意:Bash中的复制:选中内容即复制成功,粘贴:选中内容后,在输入位置按下鼠标中键(滚轮)即可实现粘贴。
3、切换完毕之后再查看历史记录,当前成功切换到了 86366fa 版本
四、Git 分支操作
在版本控制过程中,同时推进多个任务,为每个任务,我们就可以创建每个任务的单独
分支。使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己分支的时
候,不会影响主线分支的运行。对于初学者而言,分支可以简单理解为副本,一个分支就是
一个单独的副本。(分支底层其实也是指针的引用)
可以同时并行推进多个功能开发,提高开发效率。
各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响。失败
的分支删除重新开始即可。
注意:在主分支下创建分支,可以在分支中修改,然后切换到主分支合并修改的分支。
合并中有可能产生冲突:
合并分支时,两个分支在 同一个文件的同一个位置 有两套完全不同的修改。 Git 无法替
我们决定使用哪一个。必须 人为决定 新代码内容
解决合并冲突:
手动选择两个多分支修改
五、Git 团队协作机制
1、团队内协作
2、跨团队协作
GitHub 操作
1、创建远程仓库
一般一个仓库相当于一个托管的项目
可以在C盘/用户/你现在使用的用户那个文件夹下那里创建一个git.ignore文件,加入忽略的文件配置。
远程仓库操作克隆远程仓库到本地:
公司给了你一个,github上的仓库地址(https协议的或者SSH协议),你需要在某个文件夹下,右键打开Bash,输入clone命令: git clone 远程地址j即可拷贝下来程序到你得本地
3、邀请加入团队
如:https://xxx.com/用户名/git-shTest/invitations 这个链接,你收到了这个邀请,登录你得github账号界面,在浏览器的地址输入栏输入这个邀请链接(注意一定在你得github页面)
4、跨团队协作---可以了解了解Fork
5、
github的SSH 免密登录
具体步骤:
在当前用户的家目录如:C:/用户/HP/
1、运行命令生成 .ssh 秘钥目录 [ 注意:这里 -C 这个参数是大写的 C ]
ssh-keygen -t rsa -C 你之前设置的邮箱
2、按3次Enter键,如下:
这就在当前用户家目录下生成了.ssh文件夹:
有这两个文件,密钥
复制 id_rsa.pub 文件内容
4、登录 GitHub,点击用户头像→Settings→SSH and GPG keys
5、
6、
七、IDEA 集成 Git
7.1 配置 Git 忽略文件
Maven 工程的 target 目录
与项目的实际功能无关,不参与服务器上部署运行。把它们忽略掉能够屏蔽 IDE 工具之
间的差异。
创建忽略规则文件 xxxx.ignore (前缀名随便起,建议是 git.ignore )
这个文件的存放位置原则上在哪里都可以,为了便于让~/.gitconfig 文件引用,建议也放在用户家目录下。git.ignore 文件模版内容如下:
# Compiled class file *.class # Log file *.log # BlueJ files *.ctxt # Mobile Tools for Java (J2ME) .mtj.tmp/ # Package Files # *.jar *.war *.nar *.ear *.zip *.tar.gz *.rar # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml hs_err_pid* .classpath .project .settings target .idea *.iml
2、在.gitconfig 文件中引用忽略配置文件(此文件在 Windows 的家目录中)
[user] name = Layne email = Layne@atguigu.com [core] excludesfile = C:/Users/asus/git.ignore 注意:这里要使用“正斜线(/)”,不要使用“反斜线(\)”
7.2、在IDEA中定位Git
Git设置本地仓库,远程仓库使用GitHub/Giteee(码云),因此IDEA中操作Git、GitHub、Gitee实现版本控制,push到远程仓库,pull回IDEA项目中,以及clone到本地(一般给的github仓库地址或者gitee仓库地址,你在本地电脑创建一个文件夹,用git管理init后,执行git clone 远程仓库地址)即可。
1、在IDEA中安装Git、GitHub、Gitee插件2、进入你得项目中:
选择VSC----create Git Repository
创建并初始化本地仓库3、选中项目,右键 添加暂存区
4、提交本地库commit
5、创建分支
5.切换分支
6、合并分支
合并分支有两种情况,一是master主分支没有做出修改而其他分支做出修改,最后切换到master分支下合并分支会正常合并
二是master主分支和其他分支均做出修改,在最后合并时git会不知道用哪个,就产生了冲突。
这里我只演示一下冲突怎么来手动合并:
当两个分支在同一个文件的同一个地方都做改变了,和缤纷的时候会发生冲突,此时只能手动选择合并:
八、IDEA集成Gitee和Github
首先要安装Gitee和Github插件,前面也提到了,不然是用不了的哦
两个远程库操作基本上一样,这里以Gitee国内的为例
8.1、添加Gitee账号
前提你得去Gitee官网注册个账号,Gitee官网
8.2、将本地代码push到码云远程仓库
去我们的Gitee上看看发现已经push成功了哦,在Gitee上的git-demo仓库中有了我们的代码
8.3、将远程仓库代码pull到本地
如果我们的远程仓库修改了,而我们本地并没改变,我们此时就可以将远程库代码pull到本地
8.5、码云复制Github项目
很简单
去Github上找到自己想要复制的项目地址并copy。https协议的地址即可
把地址在Gitee新建库的步骤中,导入的方式,刚复制的地址放进去,如果Github上项目的代码有所更新,那么我们的Gitee上代码显然没有更新,这时候我们就要学会强制刷新Gitee项目代码之刷新网页是没用的
8.6、 从远程仓库克隆项目
8.7、IDEA中的Git的log信息
可以查看具体的信息以及操作