本文介绍了GIt,GitHub,Gitee的使用,与IDEA的Git配置,跟着文章来做你很快就能学会操作Git,利用其进行版本控制与代码托管,学习Git的使用、Git常用命令、Git分支,分支是团队协作的基础,介绍了团队内,外协作和Github远程仓库的操作、使用IDEA中的Git、IDEA中GIt的使用、在IDEA中登录GitHub、将项目分享到Github、将项目推送到Github、将远程仓库拉取到本地、将GIthub项目克隆到本地,GIthub操作、Gitee的使用,IDEA使用Gitee,将Gitee代码拉取到本地、Gitee导入Github项目的操作,看完文章并多加练习,掌握它,代表着你已经完成了GIt系列课程的学习。
Git是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种项目。易于学习,占地面积小,性能极快。它具有廉价的本地库,方便的暂存区域和多个工作流分支等特性。
版本控制是一种记录文件内容变化,以便将来查阅特定版本修订情况的系统,方便版本切换。从个人开发过度到团队合作。
代码由工作区编辑,需添加到暂存区暂时存储,此时还可改动,由暂存区执行提交命令提交到仓库中,此时代码不可改动。
代码托管中心是基于网络服务器的远程代码仓库,一般我们简单称为远程库。
1.打开git官网点此访问git官网,点击"Download for Windows",红色方框处打开下载页面
2.根据计算机位数选择下载安装包
3.如果下载太慢可选择点击如下链接,该文件为官方文件,未进行任何修改,请放心下载
点击此处可直接下载
密码:1234
双击打开Git安装包
选择凭据助手,默认选择,点击next
git --version
命令名称 | 作用 |
---|---|
git config --global user.name 用户名 | 设置用户签名 |
git config --global user.email 邮箱 | 设置用户签名 |
git init | 初始化本地库 |
git status | 查看本地库状态 |
git commit -m “日志信息” 文件名 | 提交到本地库 |
git add 文件名 | 添加到暂存区 |
git reset --hard 版本号 | 版本穿梭 |
git reflog | 查看历史记录 |
签名的作用是区分不同操作者身份,用户的签名信息在每一个版本的提交信息中能够看,提交代码前必须要设置用户签名,否则会报错,下面我们开始设置用户签名。
1)在桌面点击鼠标右键,选择"Git Bash Here"进入Git控制台
2)在控制台中输入以下代码,开始设置用户签名,后面的用户名、邮箱可随意设置,也可按公司要求
git config --global user.name 用户名
git config --global user.email 邮箱
为了让Git获得目录的管理权,我们需要初识化本地仓库,下面我们开始初始化本地仓库。
1)创建一个文件夹,文件名随意
2)右击鼠标,使用Git控制台打开
3)在控制台中输入以下代码并回车即可
基本语法
git init
4)初始化完成后git会在该目录下创建一个.git文件夹,此时git可以管理文件
可以查看本地库的文件是否被添加到暂存区和提交本地库,下面我们开始查看本地库状态。
1)创建一个测试文件,方便我们进行后续的测试
2)使用如下命令查看本地库的状态
git status
Git的机制是添加暂存区->提交本地仓库->提交远程库,所以我们需要先添加至暂存区。
1)输入以下命令,将文件添加至暂存区
git add 文件名
2)再次输入以下代码查看本地库状态会发现其已经变成了绿色,说明已经将文件提交至暂存区
git status
如果我们需要删除暂存区文件,删除暂存区文件不是删除本地文件,下面我们开始删除暂存区文件。
1)输入以下代码删除暂存区文件
git rm --cached 文件名
2)若再次查看本地库状态会发现该文件已经不在暂存区
文件提交至暂存区可以删除,但是若是提交至本地仓库就不能删除了,提交至本地仓库后续就可以将代码进行回溯了,下面我们开始将文件提交至本地仓库。
1)输入以下代码将文件提交至本地库
git commit -m "日志信息" 文件名
日志信息为自己填写,可根据自己的需求和公司要求修改
查看日志信息可以看到对文件做出的改变,与提交信息,还有文件的一系列信息,下面我们开始查看日志信息,查看引用的日志信息为大致内容,可查看详细的日志信息。
1)查看引用日志信息
git reflog
版本号,当前指针指向master,第一次插入版本,此时后面的first commit为上面输入的日志信息
2)查看详细日志信息
git log
有时候我们需要在git中查看并更改一些文件的内容,所以我们需要学习如下命令。
1)查看指定文件的全部内容
cat 文件名
2)查看指定文件的部分内容,输入以下内容可查看文件的最后一行内容
tail -n 1 文件名
学习了如下内容我们可在Git控制台修改文件,面对一些细小的缺陷可以在控制台修改下面我们开始修改文件内容。
1)输入以下代码进入文件修改界面
vim 文件名
2)点击i开始修改
3)点击esc退出编辑模式,shift+z+z退出并保存
4)输入git status查看为如下即为修改成功(此时未添加暂存区)
5)输入【git add 文件名】将文件名添加至暂存区
git commit -m "日志信息" hello.txt
日志信息可根据自己的需求填写,为了方便演示我填写了"second commit"
git按照行来维护文件,它会将原来的行删除后新增一行
8)此时再次查看本地库状态可变为如下图片
9)查看版本信息可发现其已经有两个版本,当前指针指向 第二个版本
10)此时可查看当前指针指向的文件
有时候新版本有一些严重的Bug,需要回退到其他版本,我们就需要进行版本穿梭了,下面我们开始版本穿梭。
1)查看版本信息
git reflog
2)输入以下代码选择版本可回到该版本
git reset --hard 版本号
此时指针已经指向了当前的版本,即7e17f59版本
注:shift+insert为复制粘贴键
4)查看文件内容,如下图所示,即为已经回到之前版本,hello.txt文件变更为之前的版本
GIT版本切换,底层是移动HEAD指针,并非是造多个副本
在版本控制过程中,同时推进多个任务,为每个任务,我们就可以创建每个任务的单独分支。使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己分支的时候,不会影响主线分支的运行。对于初学者而言,分支可以简单理解为副本,一个分支就是一个单独的副本。(分支底层也是指针的引用)
好处:提高效率:可同时并行推进多任务多功能的开发,显著提高开发效率。
提高容错率:如果某一个分支开发失败,不会对其他分支有任何影响。失败的分支删除重新开始即可。
命令名称 | 作用 |
---|---|
git branch 分支名 | 创建分支 |
git branch -v | 查看分支 |
git checkout 分支名 | 切换分支 |
git merge 分支名 | 把指定的分支合并到当前分支上 |
想要修改分支,首先我们要清楚有哪些分支,下面我们来学习查看分支的命令。
输入以下命令查看分支
git branch -v
我们想开始多路并发的开发,是需要进行分支的,所以创建分支是一个重要的内容,下面我们开始来创建分支吧。
1)输入以下代码创建分支
git branch 分支名
2)查看分支
git branch -v
此时有了两个分支
分支的切换可以在多个分支中进行跳转,可以对多个分支的进行管理,也是一个重要的内容,下面我们开始切换分支吧。
输入以下代码切换分支
git checkout 分支名
学习完修改分支可对各个分支的内容进行修改,下面开始我们开始修改分支吧。
1)切换到需要修改的分支,输入以下代码进入文件界面,输入i开始修改
vim 文件名
修改完成后点击Esc键,然后shift+z+z保存并退出
2)修改完成后可查看本地库状态,并未提交暂存区
3)添加暂存区并提交本地库
git add 文件名
git commit -m "日志信息" 文件名
cat 文件名
git reflog
学习完合并分支之后,我们可以将多个分支合并到一个主分支上,完成代码的合并,下面我们开始学习合并分支。
1.正常合并
1)将当前分支切换回主分支master
git checkout master
2)查看当前文件内容
cat hello.txt
3)输入以下命令合并分支至当前分支
git merge 分支名
合并分支时,两个分支在同一个文件的同一个位置有两套完全不同的修改。Git无法替我们决定使用哪一个。必须人为决定新代码内容。
会提示合并代码冲突下面会显示正在合并
此时git并没有提交暂存区,需要我们手动合并代码
1)使用vim命令进入文件页面,可看到如下页面
2)将不需要保留的内容删除
选择方向键(上下左右)选中文本的行内容,点击ESC+d+d键删除不需要的内容与特殊符号,效果如下图所示。
![请添加图片描述](https://img-blog.csdnimg.cn/
点击Shift+z+z保存并退出,保存完成后需要将文件添加至暂存区,并提交本地库,注意,此时不能使用如下命令
git commit -m "日志信息" hello.txt
会报如下错误:git不知道哪个是最新代码
使用如下命令即可保存成功,不要带文件名
git commit -m "日志信息"
如下图片即为保存本地库成功
3)查看当前文件状态
4)此时我们仅仅是合并了master分支的,hot-fix分支并未被修改
5)常见问题的解决
原因分析:新修改功能后的文件与原来commit未push的文件存在冲突,需要将修改后的文件手动加入到文件push队列中
①先使用git status
②使用git add [文件名] 将差异文件添加进去。
③然后按照自己的需求进行操作。
团队内协作机制大概如下:
1)主用户创建一个本地库
2)主用户将代码上传到用户托管中心的远程库
3)张三将远程库中的代码克隆到自己的本地库并将该代码进行修改
4)张三将修改后的代码重新上传到远程库中
5)得到主用户的同意后可传入用户托管中心
6)主用户可以将修改后的代码拉取下来
7)更新到本地库的代码
跨团队协作机制大概如下:
1)甲团队将自己的代码创建分支给乙团队
2)乙团队将代码复制到自己的远程库
3)乙团队将自己远程库中的代码克隆下来到本地库
4)乙团队在自己的本地库中对代码进行修改后将代码保存
5)推送到乙团队的远程库
6)乙团队给对方发送一个拉取请求,甲团队接收该请求,并对乙团队修改后的代码进行审核
7)审核通过后将代码合并到自己的远程库
想要创建一个远程库,可以使用GitHub,下面我们将介绍怎么创建远程仓库
GitHub官网,全球最大的交友网站
1)首先登录\注册
2)首先点击加号然后点击新建仓库
3)点击如下图顺序点击
4)如下就是你的远程仓库地址
1)输入以下代码查看当前所有远程地址别名
git remote -v
此时并没有任何别名
git remote add 别名 远程仓库
1)先切换回master分支
git push git-demo master
2)如果直接输入推送代码会出现以下情况
我们需要输入以下代码
git config --system http.sslverify false
3)输入以下代码推送至远程仓库,会弹出如下界面,选择浏览器登录
git push 别名 分支
5)此时git控制台中会有如下效果
此时github上有如下效果,可双击查看文件名
1)可在github上修改代码,点击如下图标
2)在末尾添加多个6【可根据自己的需求更改】
3)在github中提交,此时提交的是远程仓库的
4)拉取远程库的代码到本地,输入以下代码,如下图所示就是拉取成功了,并提示已经修改一行了
git pull 别名 分支
我们演示的是从github克隆到空目录里,clone会做如下操作,拉取代码,初始化本地仓库,创建别名
1)创建一个空文件夹,使用git bash here进入该文件夹,我们可以看到目前的仓库状态为空
2)使用如下命令克隆到本仓库中
git clone 远程仓库链接
注:克隆公共(public)代码不需要账号信息
下面我们对签名的内容进行复习和应用
张三拿到代码后可对文件进行修改
1)首先要进入\git-demo2\git-demo目录下,右键使用Git Bash Here打开git控制台
2)使用如下命令查看可操作的文件
ll
3)使用vim命令修改文件,进入vim界面后,点击i开始对文件进行修改,添加了"张三 hello"语句进入文件,并点击Esc键退出编辑,点击Shift+z+z保存并退出。
4)为了确认,使用cat查看文件内容,确认一下,并使用"git status"查看本地库状态。
5)使用"git add 文件名"添加到暂存区并使用"git commit -m “日志信息” 文件名"命令添加至本地库
6)使用"git push 链接 分支"命令提交至远程仓库,此时需要张三登录他的github账号并连接git,如果是你原来的账号就不需要登录了,为了演示我们假设登录的是张三的账号
,此时需要主用户授权张三加入团队,张三才能提交代码。
主用户需要如下操作
1)进入仓库,并点击设置
2)点击如图,添加成员
3)添加成员账号
4)点击如下图标,复制邀请函链接,发送给张三,张三收到后,进入并接受邀请
此内容在团队内需要熟练掌握
假设你是甲团队外的第三方人员/团队,找到一个不太好的代码
1)搜索项目
2)点击右上角的此标题,分支到自己的仓库下
3)按照7.团队内协作的步骤,可在线修改,可下载到本地仓库修改,修改项目并提交
4)如下图顺序点击
5)此时甲团队会收到一个拉取请求
6)点击接收即可
SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。
1)当我们在github中点击克隆中的ssh可以看到ssh有错误提示,那我们怎么使用ssh呢?
2)首先我们先找到C:\Users\用户名
该目录 ,使用git bash here打开
3)输入以下代码
ssh-keygen -t rsa -C 邮箱
整体意思是针对某个邮箱的免密登录
4)输入完成后什么也不需要动,敲4次回车即可,效果如下
5)此时文件目录会出现.ssh目录
6)在目录中有一个公钥和私钥文件
7)使用git bash here打开.ssh文件,并使用cat命令查看公钥,并复制
8)到账号点击设置
9)按如下顺序打开
注:需要将git控制台窗口最大化,否则有多余位置容易报错
10)测试
①我们首先看到我们的git本地库和github远程库的内容不相同。
其次,我们在github的code上的ssh的也没有报错。
②在git中输入以下代码
git pull ssh链接 分支
会出现如下情况,会提示,您第一次使用ssh协议登录,是否需要保存。
输入"yes"保存,等待一会儿就会出现如下图所示
③查看当前仓库的代码
④使用"vim"命令修改当前库的代码,使用"add"命令提交至暂存区,并添加至本地库中,使用如下命令传送到远程库中,成功即为已经将ssh设置成功
git push ssh链接 分支
忽略idea的特定文件,或者maven工程文件的target文件与和项目实际功能无关文件,可以忽略ied工具的差异。
# Compiled class file
*.class
# Mobile Tools for Java (J2ME)
.mtj.tmp/
# Log file
*.log
# BlueJ files
*.ctxt
# Package Files #
*.jar
*.ear
*.nar
*.war
*.tar.gz
*.rar
*.zip
# virt machine crash logs, see
http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
.classpath
.idea
target
.settings
*.iml
.project
该文件存放位置可任意放置,但建议放在用户目录下。
注:该文件同样在你的用户目录下,复制该文件的目录时记得把反斜线"\"改为正斜线"/"
[core]
excludesfile = C:/Users/用户名/git.ignore /*你的git.ignore文件目录*/
英文界面操作,下方有中文版
1)打开IDEA中的全部设置
2)按下图顺序点开
3)有如下图即为设置成功
4)点击应用,ok就可以啦
中文版界面
1)打开IDEA中的全部设置
方法一:直接在创建文件时创建git仓库
注:取名,选择文件目录,选择maven这些就不细说了
方法二:在文件中配置git,按如下图顺序操作
如下图即为成功,因为没有提交暂存库的的文件颜色为红色
注:未提交的代码不影响执行
一般的提交方式
1)点击右键,git,然后提交文件
2)创建一个java类,会弹出是否添加git,因为没有更改,我们点击取消
3)当有多个文件需要添加时,可直接添加一个项目,参照1)做法在项目上点击右键即可
4)点击git,查看提交目录可查看暂存区目录
输入要提交的日志信息,而后点击提交即可
5)如果遇到一直在分析代码,可以关闭代码分析,新版的idea在外面的设置里可以关闭,旧版的在git设置里可关闭
便捷的提交方式
1)在代码中添加点内容并添加至本地库
2)点击如下图标
3)如下点击可以查看版本的详细信息
可以看到,黄色为当前代码编辑区代码的指针,绿色为分支的指针
4)选择需要切换的版本点击右键,然后点击如图按钮
可以看到现在黄色指针已经切换到了其他版本
方法一:一般方式创建分支
右键选择项目,按照如下顺序点击
下面的git栏出现两个分支即为创建成功
方法二:快捷创建分支
按照如下步骤可创建分支
1)点击如下图标,下面有个分支
2)点击想切换的分支,后点击切换即可
方法一:正常合并
回到你想要合并到的分支,选择合并到该分支
1)两个有冲突的代码合并分支时会出现冲突
2)会弹出如下窗口,点击合并
3)出现如下窗口,窗口内容在图片中介绍
4)点击都合并的会弹出提示,直接点击右下方应用即可
1)打开idea的设置
2)在版本控制选项选择github,可以看到有两种登录选项,我们只介绍其中的一种
3)点击通过GitHub登录选项,会跳转到下方网页,点击发方标识的按钮
4)会跳转到下方的网页,如果你登录账号的情况下会登录,点击下方标识处,会跳转到确认密码网站,登录后等一会儿就可以了。
5)之后在idea里可以看到自己的账号,点击上方的账号,点击减号可以删除账号。
1)点击git,github,然后选择GitHub分享项目
2)按如图顺序依次设置,等待一会即可在GitHub上看到项目了。
点击推送,两个都可以
然后直接点击推送即可
注意:push是将本地库代码推送至远程库,如果本地仓库代码比远程仓库代码低,则提交会被拒绝,所以一般是先对比本地库与远程仓库,先拉取,再修改,推送
1)在远程仓库修改代码
2)在idea里拉取该项目
点击拉取,等待一会儿就可以了
注意:pull是拉取远程仓库到本地,如果远程仓库和本地仓库不一致,可能会导致合并冲突问题,需要手动解决冲突。
1)将本地库的项目删除,在项目目录下
2)复制GitHub仓库的链接,打开idea
3)粘贴到下方
gitee是国内的代码托管平台,由于网络原因GitHub服务器在国外,不太方便使用,gitee为国内开发的代码托管平台,gitee和GitHub操作几乎相同。
GItee官网
1)在idea插件中搜索gitee插件并下载
2)在idea设置中的版本控制处可看到gitee,登录gitee
授权即可
3)在idea中点击git,管理远程
4)点击添加
5)输入名称,添加仓库链接,点击确定即可
6)如图选择,鼠标左键单击红框处,点击推送即可
7)可以看到git仓库上面已经有该项目了
1)打开gitee项目中需要修改的文件,点击编辑即可修改,提交方法和GitHub一样
2)点击拉取
4)切换到gitee仓库,点击拉取即可
1)在gitee上新建仓库
2)点击导入仓库
4)点击绿色按钮
5)点击导入即可
以上为GIT的介绍,与使用技巧,希望大家多多练习,多加巩固,你一定能掌握Git的!!!