微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Git篇-一篇文章,快速入门Git、GitHub、Gitee

① Git安装

Git官方地址(下载链接)

在这里插入图片描述

安装过程

在这里插入图片描述

  • 选择 Git 安装位置,要求是非中文并且没有空格的目录,然后下一步

    在这里插入图片描述

  • Git 选项配置,推荐认设置,然后下一步

    在这里插入图片描述

  • Git 的认编辑器,建议使用认的 Vim 编辑器,然后点击下一步

    在这里插入图片描述

  • 认分支名设置,选择让 Git 决定,分支名认为 master,下一步

    在这里插入图片描述

  • 修改 Git 的环境变量,选第一个,不修改环境变量,只在 Git Bash 里使用 Git

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WGgYfAxK-1622967438444)(Git-GitHub-Gitee-GitLab.assets/1622812384995.png)]

  • 选择后台客户端连接协议,选认值 OpenSSL,然后下一步

    在这里插入图片描述

  • 配置 Git 文件的行末换行符,Windows 使用 CRLF,Linux 使用 LF,选择第一个自动 转换,然后继续下一步

    在这里插入图片描述

  • 选择 Git 终端类型,选择认的 Git Bash 终端,然后继续下一步

    在这里插入图片描述

  • 选择 Git pull 合并的模式,选择认,然后下一步

    在这里插入图片描述

  • 选择 Git 的凭据管理器,选择认的跨平台的凭据管理器,然后下一步

    在这里插入图片描述

  • 其他配置,选择认设置,然后下一步

在这里插入图片描述

  • 实验室功能,技术还不成熟,有已知的 bug,不要勾选,然后点击右下角的 Install 按钮,开始安装 Git

    在这里插入图片描述

  • 测试是否安装成功

    • 到桌面,点击鼠标右键

      在这里插入图片描述

    • 点击Git Bash Here,输入git --version命令,出现如下内容即为成功。

      在这里插入图片描述

②Git常用命令

设置用户签名

  • 基本语法

git config --global user.name 用户名

git config --global user.email 邮箱

说明: 签名的作用是区分不同操作者身份。用户的签名信息在每一个版本的提交信息中能够看 到,以此确认本次提交是谁做的。Git 首次安装必须设置一下用户签名,否则无法提交代码。这里设置用户签名和将来登录 GitHub(或其他代码托管中心)的账号没有任 何关系

  • 案例实操

    在这里插入图片描述

初始化本地库

  • 基本语法

git init

  • 案例实操

    在这里插入图片描述

  • 结果查看

    在这里插入图片描述

查看本地库状态

  • 基本语法

git status

  • 案例实操

添加暂存区

将工作区的文件添加到暂存区

  • 基本语法

git add 文件

  • 案例实操

    在这里插入图片描述


    查看状态

    在这里插入图片描述

提交本地库

将暂存区的文件提交到本地库

  • 基本语法

git commit -m “日志信息” 文件

  • 案例实操

    在这里插入图片描述

查看状态(没有文件需要提交)

在这里插入图片描述

修改文件

修改之前的文件,然后再次查看状态

检测到工作区有文件修改

在这里插入图片描述

历史版本

查看历史版本

  • 基本语法

git reflog 查看版本信息

git log 查看版本详细信息

  • 案例实操

    在这里插入图片描述

版本穿梭

  • 基本语法

git reset – hard 版本号

  • 案例实操

    在这里插入图片描述

说明: Git 切换版本,底层其实是移动的 HEAD 指针

在这里插入图片描述

③Git分支操作

分支的概述与优点

在版本控制过程中,同时推进多个任务,为每个任务,我们就可以创建每个任务的单独 分支。使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己分支的时 候,不会影响主线分支的运行。对于初学者而言,分支可以简单理解为副本,一个分支就是 一个单独的副本。(分支底层其实也是指针的引用)

在这里插入图片描述

优点

  • 同时并行推进多个功能开发,提高开发效率
  • 各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响。失败 的分支删除重新开始即可

分支的操作

命令名称作用
git branch 分支名创建分支
git branch -v查看分支
git checkout 分支名切换分支
git merge 分支名把指定的分支合并到当前分支上

查看分支

  • 基本语法

git branch -v

  • 案例实操

    在这里插入图片描述

创建分支

  • 基本语法

git branch 分支名

  • 案例实操

    在这里插入图片描述

修改分支

--在 maste 分支上做修改
Layne@LAPTOP-Layne MINGW64 /d/Git-Space/SH0720 (master)
$ vim hello.txt
--添加暂存区
Layne@LAPTOP-Layne MINGW64 /d/Git-Space/SH0720 (master)
$ git add hello.txt
--提交本地库
Layne@LAPTOP-Layne MINGW64 /d/Git-Space/SH0720 (master)
$ git commit -m "my forth commit" hello.txt
[master f363b4c] my forth commit
1 file changed, 1 insertion(+), 1 deletion(-)
--查看分支
Layne@LAPTOP-Layne MINGW64 /d/Git-Space/SH0720 (master)
$ git branch -v
 hot-fix 087a1a7 my third commit (hot-fix 分支并未做任何改变)
* master f363b4c my forth commit (当前 master 分支已更新为最新一次提交
的版本)
--查看 master 分支上的文件内容
Layne@LAPTOP-Layne MINGW64 /d/Git-Space/SH0720 (master)
$ cat hello.txt
hello git! hello atguigu! 2222222222222
hello git! hello atguigu! 3333333333333
hello git! hello atguigu!
hello git! hello atguigu!
hello git! hello atguigu!
hello git! hello atguigu!
hello git! hello atguigu!
hello git! hello atguigu!
hello git! hello atguigu!
hello git! hello atguigu!
hello git! hello atguigu!
hello git! hello atguigu!
hello git! hello atguigu!
hello git! hello atguigu!
hello git! hello atguigu! master test
hello git! hello atguigu!

切换分支

  • 基本语法

git checkout 分支名

  • 案例实操

    在这里插入图片描述

合并分支

  • 基本语法

git merge 分支名

  • 案例实操

    在这里插入图片描述

产生冲突和解决冲突

合并分支时,两个分支在同一个文件的同一个位置有两套完全不同的修改。Git 无法替 我们决定使用哪一个。必须人为决定新代码内容

冲突产生的表现:后面状态为 MERGING

在这里插入图片描述

  • 编辑有冲突的文件删除特殊符号,决定要使用的内容

    特殊符号:<<<<<<< HEAD 当前分支的代码 ======= 合并过来的代码 >>>>>>> hot-fix

  • 添加到暂存区

在这里插入图片描述

  • 执行提交(注意:此时使用git commit命令时不能带文件

在这里插入图片描述

总结分支

master、hot-fix 其实都是指向具体版本记录的指针。当前所在的分支,其实是由 HEAD 决定的。所以创建分支的本质就是多创建一个指针。

HEAD 如果指向 master,那么我们现在就在 master 分支上。

HEAD 如果执行 hotfix,那么我们现在就在 hotfix 分支上

④Git团队协作机制

  • 团队内协作

    在这里插入图片描述

  • 跨团队协作

    在这里插入图片描述

⑤GitHub操作

创建远程仓库

在这里插入图片描述

远程仓库操作

命令名称作用
git remote -v查看当前所有远程地址别名
git remote add 别名 远程地址起别名
git push 别名 分支推送本地分支上的内容到远程仓库
git clone 远程地址将远程仓库的内容克隆到本地
git pull 远程库地址别名 远程分支名将远程仓库对于分支最新内容拉下来后与当前本地分支直接合并

创建远程仓库别名

  • 基本语法

git remote -v 查看当前所有远程地址别名

git remote add 别名 远程地址

  • 案例实操

    在这里插入图片描述

说明: 这个地址在创建完远程仓库后生成的连接,如图所示红框中

在这里插入图片描述

推送本地分支到远程仓库

  • 基本语法

git push 别名 分支

  • 案例实操

    在这里插入图片描述

拉取远程仓库的代码

  • 基本语法

git pull 远程库地址别名 远程分支名

将远程仓库对于分支最新内容拉下来后与当前本地分支直接合并(会自动提交)

  • 案例实操

    在这里插入图片描述

克隆远程仓库到本地

  • 基本语法

git clone 远程地址

  • 案例实操

    在这里插入图片描述

说明: clone 会做如下操作。1、拉取代码。2、初始化本地仓库。3、创建别名(别名是随机的)

邀请加入团队(团队内合作)

  • 选择邀请合作者

    在这里插入图片描述

  • 填入想要合作的人

    在这里插入图片描述

  • 复 制 地 址 并 通 过 微 信 钉 钉 等 方 式 发 送 给 该 用 户

    在这里插入图片描述

  • 在邀请人的账号中的地址栏搜索复制的链接,然后点击接受邀请

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qMU8QztY-1622967438491)(Git-GitHub-Gitee-GitLab.assets/1622884004008.png)]

  • 成功之后可以在受邀请人 这个账号上看到 git-demo 的远程仓库

    在这里插入图片描述

  • 受邀请人可以修改内容并 push 到远程仓库

  • 回到原来账号的Github远程仓库中可以查看到受邀请人修改后push后的代码

跨团队协作

  • 将远程仓库的地址复制发给邀请跨团队协作的人

  • 在其他团队的人的 GitHub 账号里的地址栏复制收到的链接,然后点击 Fork 将项目叉到自 己的本地仓库

    在这里插入图片描述

  • 其他团队的人就可以在线编辑叉取过来的文件

    在这里插入图片描述

  • 编辑完毕后,填写描述信息并点击左下角绿色按钮提交

    在这里插入图片描述

  • 接下来点击上方的 Pull 请求,并创建一个新的请求

    在这里插入图片描述

  • 回到原来的 GitHub 账号可以看到有一个 Pull request 请求

    在这里插入图片描述

  • 进入到聊天室,可以讨论代码相关内容

    在这里插入图片描述

    在这里插入图片描述

  • 如果代码没有问题,可以点击 Merge pull reque 合并代码

    在这里插入图片描述

SSH免密登录

我们可以看到远程仓库中还有一个 SSH 的地址,因此我们也可以使用 SSH 进行访问

在这里插入图片描述


具体操作

  • 进入当前用户的家目录, 删除.ssh 目录

    在这里插入图片描述

  • -运行命令生成.ssh 秘钥目录[注意:这里-C 这个参数是大写的 C]

    在这里插入图片描述

  • 进入.ssh 目录查看文件列表 , 查看 id_rsa.pub 文件内容

    在这里插入图片描述

  • 复制 id_rsa.pub 文件内容登录 GitHub,点击用户头像→Settings→SSH and GPG keys→New SSH key

    在这里插入图片描述

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3lz4EQPE-1622967438506)(Git-GitHub-Gitee-GitLab.assets/1622955439667.png)]

能往远程库推送表明,操作成功

⑥IDEA集成Git

配置 Git 忽略文件

由于不管是idea还是eclipse都有各自特定的文件,但是这些文件 与项目的实际功能无关,不参与服务器上部署运行。把它们忽略掉能够屏蔽 IDE 工具之 间的差异 ,所以在git操作的时候需要忽略它们

具体操作

这个文件的存放位置原则上在哪里都可以,为了便于让~/.gitconfig 文件引用,建议也放在用 户家目录下

文件内容模板如下:

# 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
[core]
excludesfile = C:/Users/asus/git.ignore
注意:这里要使用“正斜线(/)”,不要使用“反斜线(\)”

定位Git程序

在这里插入图片描述

点击Test后,弹出④窗口则说明成功

初始化本地库

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Vq01t47K-1622967438510)(Git-GitHub-Gitee-GitLab.assets/1622958574691.png)]

选择要创建 Git 本地仓库的工程

在这里插入图片描述

添加到暂存区

在这里插入图片描述

提交到本地库

在这里插入图片描述

切换版本

  • 在 IDEA 的左下角,点击 Version Control,然后点击 Log 查看版本

    在这里插入图片描述

  • 右键选择要切换的版本,然后在菜单里点击 Checkout Revision

    在这里插入图片描述

创建分支与切换分支

创建分支

  • 选择 Git,在 Repository 里面,点击 Branches 按钮

    在这里插入图片描述

  • 在弹出的 Git Branches 框里,点击 New Branch 按钮

    在这里插入图片描述

  • 输入分支名字,勾选跳到新建分支

    在这里插入图片描述

  • 然后再 IDEA 的右下角看到 hot-fix,说明分支创建成功,并且当前已经切换成 hot-fix 分 支

    在这里插入图片描述

切换分支

在 IDEA 窗口的右下角,切换到 master 分支

在这里插入图片描述

合并分支

在 IDEA 窗口的右下角,将 hot-fix 分支合并到当前 master 分支

在这里插入图片描述

如果代码没有冲突,分支直接合并成功,分支合并成功以后,代码自动提交,无需手动 提交本地库

解决冲突

如图所示,如果 master 分支和 hot-fix 分支都修改代码,在合并分支的时候就会发生 冲突

在这里插入图片描述

合并的时候会有冲突弹窗

在这里插入图片描述

⑦IDEA集成GitHub

设置 GitHub 账号

在这里插入图片描述

如果登不上就使用口令登录,点击Enter token

然后口令去github账户中生成,步骤如下:

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述

分享工程到 GitHub

在这里插入图片描述

在这里插入图片描述

push 推送本地库到远程库

在这里插入图片描述

如果网络良好,可以直接push

在这里插入图片描述

如果网络不佳,建议使用ssh免密登录

在这里插入图片描述

注意: push 是将本地库代码推送到远程库,如果本地库代码跟远程库代码版本不一致, push 的操作是会被拒绝的。也就是说,要想 push 成功,一定要保证本地库的版本要比远程 库的版本高!因此一个成熟的程序员在动手改本地代码之前,一定会先检查下远程库跟本地 代码的区别!如果本地的代码版本已经落后,切记要先 pull 拉取一下远程库的代码,将本地 代码更新到最新以后,然后再修改,提交,推送!

pull 拉取远程库到本地库

在这里插入图片描述

在这里插入图片描述

注意: pull 是拉取远端仓库代码到本地,如果远程库代码和本地库代码不一致,会自动 合并,如果自动合并失败,还会涉及到手动解决冲突的问题

clone 克隆远程库到本地

在这里插入图片描述

⑧国内代码托管中心-码云 (Gitee)

操作也GitHub及其相似,且码云是中文的,更容易上手

使用码云建议使用https不用ssh免密登录

码云复制 GitHub 项目

在这里插入图片描述


在这里插入图片描述

按操作完成 即可导入仓库

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐