Git_GitHub_Inteli

P1 Git

1 what is Git?

Git是目前世界上最先进的分布式版本控制系统

Git_GitHub_Inteli_第1张图片

2 版本管理系统能干什么?

Git_GitHub_Inteli_第2张图片

3 Git的常用命令

3.1.创建版本库

在项目文件夹内,执行: git init

3.2.提交文件

新建文件后,通过git status 进行查看文件状态
将文件添加到暂存区 git add 文件名
提交文件到本地库 git commit
编写注释 ,完成提交
或者也可以git commit –m “注释内容”, 直接带注释提交

3.3.查看文件提交记录

执行 git log 文件名 进行查看历史记录
git log --pretty=oneline 文件名 简易信息查看

3.4.回退历史

git reset --hard HEAD^ 回退到上一次提交
git reset --hard HEAD~n 回退n次操作

3.5.版本穿越

进行查看历史记录的版本号,执行 git reflog 文件名
执行 git reset --hard 版本号

3.6.还原文件

git checkout – 文件名

3.7.删除某个文件

先删除文件
再git add 再提交

4 工作区+暂存区+本地库

工作区(Working Directory):就是你电脑本地硬盘目录
本地库(Repository):工作区有个隐藏目录.git,它就是Git的本地版本库
暂存区(stage):一般存放在"git目录"下的index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。

Git_GitHub_Inteli_第3张图片

5.Git分支

5.1创建分支

git branch <分支名>
git branch –v 查看分支

5.2 切换分支

git checkout <分支名>
一步完成: git checkout –b <分支名>

5.3 合并分支

先切换到主干 git checkout master
git merge <分支名>

5.4 冲突

冲突一般指同一个文件同一位置的代码,在两种版本合并时版本管理软件无法判断到底应该保留哪个版本,因此会提示该文件发生冲突,需要程序员来手工判断解决冲突。

合并时冲突:

程序合并时发生冲突系统会提示CONFLICT关键字,命令行后缀会进入MERGING状态,表示此时是解决冲突的状态。

在这里插入图片描述

5.5 解决冲突

此时通过git diff 可以找到发生冲突的文件及冲突的内容。

然后修改冲突文件的内容,再次git add 和git commit 提交后,后缀MERGING消失,说明冲突解决完成。

Git_GitHub_Inteli_第4张图片

P2 GitHub

1.what is GitHub?

GitHub是一个Git项目托管网站,主要提供基于Git的版本托管服务

注意: 不要使用163的邮箱,有可能收不到验证邮件。
较长时间不使用有可能被Github冻结账号。请登录其客服页面https://github.com/contact,填写账号恢复申请。

图解GitHub的代码提交和克隆

Git_GitHub_Inteli_第5张图片

2.GitHub的常用命令

2.1增加远程地址

git remote add <远端代号> <远端地址> 。
<远端代号> 是指远程链接的代号,一般直接用origin作代号,也可以自定义。
<远端地址> 默认远程链接的url
例: git remote add origin https://github.com/user111/Helloworld.git

2.2推送到远程库

git push <远端代号> <本地分支名称>。
<远端代号> 是指远程链接的代号。
<分支名称> 是指要提交的分支名字,比如master。
例: git push origin master

2.3从GitHub上克隆一个项目

git clone <远端地址> <新项目目录名>。
<远端地址> 是指远程链接的地址。
<项目目录名> 是指为克隆的项目在本地新建的目录名称,可以不填,默认是GitHub的项目名。
命令执行完后,会自动为这个远端地址建一个名为origin的代号。
例 git clone https://github.com/user111/Helloworld.git hello_world

2.4从GitHub更新项目

git pull <远端代号> <远端分支名>。
<远端代号> 是指远程链接的代号。
<远端分支名>是指远端的分支名称,如master。
例 git pull origin master

3.邀请您的好友

以上对项目的操作方式,必须是项目的创建者或者合作伙伴。
合作伙伴添加方式如下图: 在项目中点击settings页签,然后点击Collaborators,然后在文本框中搜索合作伙伴的邮箱或者账号。点击添加。
添加后GitHub会给合作伙伴对应的邮箱发一封,邀请邮件。

Git_GitHub_Inteli_第6张图片

合作伙伴会收到邀请邮件。点击View invitation 按钮后会跳转至GitHub页面,让合作伙伴选择,是否接受邀请。
点击接受后,则合伙伙伴正式加入项目,获得直接提交代码的权限。

4.协作冲突

在上传或同步代码时,由于你和他人都改了同一文件的同一位置的代码,版本管理软件无法判断究竟以谁为准,就会报告冲突,需要程序员手工解决。

Git_GitHub_Inteli_第7张图片

5.在GitHub网站上建立仓库

Git_GitHub_Inteli_第8张图片

在GitHub网站上建立仓库,填写仓库相关信息

Git_GitHub_Inteli_第9张图片

P3 Inteli有关GitHub和Git的操作

1.上传项目到GitHub

1.1.复制仓库地址的连接

Git_GitHub_Inteli_第10张图片

1.2.选择本地的Git.exe的位置

在idea中,settings →Version Control →Git
选择本地的Git.exe的位置

Git_GitHub_Inteli_第11张图片

1.3.填写网站登录的用户名密码

在idea中,settings →Version Control →GitHub
填写网站登录的用户名密码

Git_GitHub_Inteli_第12张图片

1.4.通过版本控制软件创建项目

Git_GitHub_Inteli_第13张图片

1.5.增加一个类,然后右键点击add,添加到暂存区

Git_GitHub_Inteli_第14张图片

1.6.增加一个类,然后右键Commit File… ,提交到本地库

Git_GitHub_Inteli_第15张图片

1.7.填写提交信息

Git_GitHub_Inteli_第16张图片

1.8.然后推送到GitHub

Git_GitHub_Inteli_第17张图片

1.9 去GitHub上验证是否上传成功

Git_GitHub_Inteli_第18张图片

2.解决冲突

两个开发人员同样一块代码,但是做了不同的修改,其中一个人提交了,另外一个人再提交就会报错。

2.1 直接选择Merge

可以直接选择Merge,idea会帮你把最新代码下载下来,然后跟你本地代码发生冲突

然后又三个选项,1、直接以你本地代码为准覆盖掉别人的
2、直接以别人代码为准覆盖掉你的
3、手工合并(推荐选择)

![(Git_GitHub_Inteli.assets/21_然后又三个选项,1、直接以你本地代码为准覆盖掉别人的.png)

Git_GitHub_Inteli_第19张图片

2.2 编辑合并后,再次commit File

2.3 commit File,再次push

3.Git工作流

3.1集中式工作流

像SVN一样,集中式工作流以中央仓库作为项目所有修改的单点实体。所有修改都提交到Master这个分支上。
这种方式与SVN的主要区别就是开发人员有本地库。Git很多特性并没有用到。

3.2 GitFlow工作流

Gitflow工作流通过为功能开发、发布准备和维护设立了独立的分支,让发布迭代过程更流畅。严格的分支模型也为大型项目提供了一些非常必要的结构。

Git_GitHub_Inteli_第20张图片

3.2.1 分支种类

  • 主干分支 master
    主要负责管理正在运行的生产环境代码。永远保持与正在运行的生产环境完全一致。

  • 开发分支 develop
    主要负责管理正在开发过程中的代码。一般情况下应该是最新的代码。

  • bug修理分支 hotfix
    主要负责管理生产环境下出现的紧急修复的代码。 从主干分支分出,修理完毕并测试上线后,并回主干分支。并回后,视情况可以删除该分支。

  • 发布版本分支 release
    较大的版本上线前,会从开发分支中分出发布版本分支,进行最后阶段的集成测试。该版本上线后,会合并到主干分支。生产环境运行一段阶段较稳定后可以视情况删除。

  • 功能分支 feature
    为了不影响较短周期的开发工作,一般把中长期开发模块,会从开发分支中独立出来。 开发完成后会合并到开发分支。

3.3 分支操作

Git_GitHub_Inteli_第21张图片

① 在这个分支下增加新代码,
本地提交,然后push到远端
之后可以在github上看到新的分支被上传

②如果该分支内容修改没有问题,可以合并到主干

首先切换到主干master

在主干master分支上选择要合并的分支进行Merge

  • 功能分支 feature
    为了不影响较短周期的开发工作,一般把中长期开发模块,会从开发分支中独立出来。 开发完成后会合并到开发分支。

3.3 分支操作

① 在这个分支下增加新代码,
本地提交,然后push到远端
之后可以在github上看到新的分支被上传

②如果该分支内容修改没有问题,可以合并到主干

首先切换到主干master

在主干master分支上选择要合并的分支进行Merge

最后把经过合并的master, push到远端即完成了一个功能在主干上的提交。

你可能感兴趣的:(github,git)