当前位置:   article > 正文

一文详解Git_git地址

git地址

一. Git 概述

1.1 什么是 Git

Git 是一个免费的、开源的分布式版本控制工具, 主要用于管理开发过程中的源代码文件,在软件开发过程中被广泛使用。通过Git仓库来存储和管理这些文件,Git仓库分为二种:

  • 本地仓库:开发人员自己电脑上的仓库
  • 远程仓库:远程服务器上的仓库

1.2 Git基本概念

工作区:包含 .git 文件夹的目录就是工作区,也称为工作目录,主要用于存放开发的代码。

暂存区:.git 文件夹中有很多文件,其中有一个index文件就是暂存区,也可以叫 stage。暂存区是一个临时保存修改文件的地方。

版本库:前面看到的 .git 隐藏文件夹就是版本库,版本库中存储了很多配置信息、日志信息和文件版本信息等。

1.3 代码托管中心

代码托管中心是基于网络服务器的远程代码仓库,一般我们简单称为远程库。 局域网里有GitLab,互联网里有 GitHub(外网)、Gitee 码云(国内网站)。

gitHub(地址:GitHub: Let’s build from here · GitHub):是一个面向开源及私有软件项目的托管平台,因为只支持Git作为唯一的版本库格式进行托管,故名gitHub

码云(地址:Gitee - 企业级 DevOps 研发效能平台):是国内的一个代码托管平台,由于服务器在国内,所以相比于GitHub,码云速度会更快

GitLab(地址:The DevSecOps Platform | GitLab):是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务

BitBucket (地址:Bitbucket | Git solution for teams using Jira):是一家源代码托管网站,采用Mercurial和Git作为分布式版本控制系统,同时提供商业计划和免费账户

二.Git 的下载和安装

1.下载

打开官网,找到Windows版的Git下载即可

2.安装

双击安装包,傻瓜式安装即可

3.验证

安装完成后在任意目录点击鼠标右键,如果能看到如下菜单,则表示安装完成

Git GUI Here:打开 Git 图形界面

Git Bash Here:打开 Git 命令行

三.Git 常用命令

3.1 设置用户签名

用户签名的作用

        签名的作用是区分不同操作者身份。用户的签名信息在每一个版本的提交信息中能够看到,以此确认本次提交是谁做的。Git 首次安装必须设置一下用户签名,否则无法提交代码。

基本语法

  1. git config --global user.name “用户名”
  2. git config --global user.email “邮箱”

3.2 创建本地Git仓库

要使用 Git 来对我们的代码进行控制,首先要获得 Git 仓库。可以用二种方式来创建本地仓库,分别是本地初始化一个仓库、或者从远程仓库克隆过来。

1.本地初始化仓库步骤

步骤一:在任意目录下创建一个空目录,作为我们的本地Git仓库

步骤二:进入这个目录,右键打开Git Bash窗口

步骤三:在命令行窗口中输入命令:git init

步骤四:如果在当前目录下看到.git文件夹,代表初始化仓库成功

步骤五:.git文件夹是隐藏文件夹,需要设置显示隐藏文件夹才能看到

2.从远程仓库克隆的步骤

步骤一:在任意目录下创建一个空目录

步骤二:进入这个目录,右键打开Git Bash窗口

步骤三:在命令行窗口中输入命令:git clone “远程仓库地址”

3.3 查看本地库状态

命令

git status

1.首次查看本地库状态

首次查看,本地库的工作区没有任何文件

2.新增文件

新增文件的方式有二种

方式一:直接在本地仓库内新建一个文件,步骤如下

第一步:创建一个名为 hello 的文本文档

第二步:在文本文档中随便写一些代码

方式二:通过 vim 命令新建

第一步:在 git 的命令行窗口中输入命令:vim hello.txt

第二步:在新界面按 进入插入模式,然后输入文件内容

第三步:按 esc 进入命令模式,输入命令 :wq 保存文件并退出当前命令界面

第四步:在命令界面输入命令 ll 可以发现,该本地库确实存在该文件了

第五步:在命令行界面输入 cat 文件名,即可查看文件内容

3.再次查看本地库状态

再次输入命令:git status,即可检测到未追踪的文件

3.4 添加暂存区

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

git命令

git add 文件名

3.5 提交本地库

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

这里的本地库就是上面提到的版本库

3.6 修改文件

通过vim命令修改文件hello.txt

查看状态,检测到工作区有文件被修改

 将修改的文件再次添加暂存区

再次查看状态,工作区的修改添加到了暂存区

3.7 历史版本

1.查看历史版本

基本语法

  1. git reflog 查看版本信息
  2. git log 查看版本详细信息

案例

2.版本穿梭

基本语法

git reset --hard 版本号

案例

四.Git 分支操作

4.1 分支概述

什么是分支

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

分支的好处

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

分支的操作

4.2 查看分支

语法

git branch -v

案例实操

4.3 创建分支

语法

git branch 分支名

案例实操

4.4 修改分支

4.5 切换分支

基本语法

git checkout 分支名

案例实操

4.6 合并分支

基本语法

git merge 分支名

案例实操

在 master 分支上合并 hot-fix 分支

4.7 分支冲突

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

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

产生分支冲突的文件,其中:

特殊符号:<<<<<<< HEAD。是产生分支冲突后文件里新产生的特殊符号

当前分支的代码:=======及上面二行代码

合并过来的代码:>>>>>>> hot-fix 及上面二行代码

查看状态

检测到有文件有两处修改

4.8 解决冲突

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

添加到暂存区

执行提交,要注意此时使用 git commit 命令时不能带文件名

五.Git标签操作

5.1 什么是Git标签

        Git中的标签指的是某个分支某个特定时间点的状态。通过标签,可以很方便的切换到标记时的状态。比较有代表性的是人们会使用这个功能来标记发布节点(v1.0,v2.0等)。下面是mybatis-plus的标签:

5.2 标签相关命令

1.列出已有的标签:

Git  lag

2.创建标签:

git  lag  标签名字

3.将标签推送至远程仓库:

git push 远程仓库别名 标签名

4.检出标签:

检出标签需要新建一个分支来指向某个标签,检出标签的命令格式为:

git checkout -b 分支名称 标签名称

六.GitHub 操作

什么是GitHub

全球最大同性交友网站,技术宅男的天堂,新世界的大门,你还在等什么?

GitHub 网址:https://github.com/

6.1 创建远程仓库

创建远程仓库只需按照下图所示步骤一步步进行即可

6.2 远程仓库操作

1.创建远程仓库别名

基本语法

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

案例实操

2.推送本地分支到远程仓库

基本语法

git push 远程仓库别名 分支

案例实操

此时来到 GitHub 会发现已将我们 master 分支上的内容推送到了远程仓库中

3.克隆远程仓库到本地

clone 会做如下操作

  • 拉取代码:会从远程仓库拉取代码
  • 初始化本地仓库:自动初始化本地仓库
  • 创建别名:为远程仓库创建一个别名,可通过 git remote -v 命令查看远程仓库的别名

基本语法

git clone 远程地址

案例实操

4.邀请加入团队

可通过如下步骤邀请某个开发者加入团队

第一步:选择邀请合作者

第二步:填入想要合作的人,并点击下方绿色按钮

第三步:点击红色矩形内的按钮后,会自动复制地址,并通过微信、钉钉等方式发送给该用户

第四步:该用户登录到GitHub之后,可以在账号的地址栏中输入收到邀请的链接,点击接受邀请

第五步:成功之后可以在 atguigulinghuchong 这个账号上看到名为 git-Test 的远程仓库

第六步:atguigulinghuchong 可以修改内容并 push 到远程仓库

第七步:回到 atguiguyueyue 的 GitHub 远程仓库中可以看到,最后一次是 lhc 提交的

5.拉取远程库内容

基本语法

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

案例实操

克隆远程库和拉取远程库的区别在于:克隆是将完整远程仓库克隆到本地,拉取是将最新内容拉下来与本地仓库合并。

6.3 跨团队协作

团队内协作

跨团队协作

跨团队协作的具体步骤如下所示:

第一步:将远程仓库的地址复制发给邀请跨团队协作的人,比如东方不败

第二步:在东方不败的 GitHub 账号里的地址栏复制收到的链接,然后点击 Fork 将项目叉到自 己的本地仓库

叉成功后可以看到当前仓库信息

第三步:东方不败就可以在线编辑叉取过来的文件

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

第五步:接下来点击上方的 Pull 请求,并创建一个新的请求

第六步:回到岳岳 GitHub 账号可以看到有一个 Pull request 请求

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

第七步:如果代码没有问题,可以点击 Merge pull reque 合并代码

6.4 SSH 免密登录

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

具体步骤如下:

第一步:在 git 命令行窗口中做如下操作

第二步:复制 id_rsa.pub 文件内容,登录 GitHub,点击用户头像→Settings→SSH and GPG keys

第三步:接下来再往远程仓库 push 东西的时候使用 SSH 连接就不需要登录了

七.IDEA 集成 Git

7.1 配置 Git 忽略文件

1.哪些是可忽略的文件

IDEA 特定文件:

Maven 工程的 target 目录:

2.为什么要忽略他们

与项目的实际功能无关,不参与服务器上部署运行。把它们忽略掉能够屏蔽 IDE 工具之间的差异

3.怎么忽略

按照以下步骤即可忽略这些文件

第一步:创建忽略规则文件 xxxx.ignore

        前缀名随便起,建议是 git.ignore,这个文件的存放位置原则上在哪里都可以,为了便于让 .gitconfig 文件引用,建议也放在用户家目录下

git.ignore 文件模版内容如下:

  1. # Compiled class file
  2. *.class
  3. # Log file
  4. *.log
  5. # BlueJ files
  6. *.ctxt
  7. # Mobile Tools for Java (J2ME)
  8. .mtj.tmp/
  9. # Package Files #
  10. *.jar
  11. *.war
  12. *.nar
  13. *.ear
  14. *.zip
  15. *.tar.gz
  16. *.rar
  17. # virtual machine crash logs, see
  18. http://www.java.com/en/download/help/error_hotspot.xml
  19. hs_err_pid*
  20. .classpath
  21. .project
  22. .settings
  23. target
  24. .idea
  25. *.iml

第二步:在 .gitconfig 文件中引用忽略配置文件

此文件在 Windows 的家目录中

  1. [user]
  2. name = Layne
  3. email = Layne@atguigu.com
  4. [core]
  5. excludesfile = C:/Users/asus/git.ignore
  6. 注意:这里要使用“正斜线(/)”,不要使用“反斜线(\)”

7.2 定位 Git 程序

打开 idea 中的 setting,找到 git 窗口,选择自己的 git 安装目录

7.3 初始化本地库

按下图所示点击 Create Git Repository

在弹出的窗口中选择要创建 Git 本地仓库的工程

7.4 添加到暂存区

右键点击项目选择 Git -> Add 将项目添加到暂存区

7.5 提交到本地库

7.6 切换项目版本

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

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

7.7 创建分支

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

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

填写分支名称,创建 hot-fix 分支

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

7.8 切换分支

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

然后在 IDEA 窗口的右下角看到了 master,说明 master 分支切换成功

7.9 合并分支

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

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

7.10 解决冲突

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

我们现在站在 master 分支上合并 hot-fix 分支,就会发生代码冲突

点击 Conflicts 框里的 Merge 按钮,进行手动合并代码

手动合并完代码以后,点击右下角的 Apply 按钮

代码冲突解决,自动提交本地库

八. IDEA 集成 GitHub

8.1 设置 GitHub 账号

如果出现 401 等情况连接不上的,是因为网络原因,可以使用以下方式连接:

然后去 GitHub 账户上设置 token

点击生成 token

复制红框中的字符串到 idea 中

点击登录

8.2 分享工程到 GitHub

来到 GitHub 中发现已经帮我们创建好了 gitTest 的远程仓库

8.3 push 推送本地库到远程库

右键点击项目,可以将当前分支的内容 push 到 GitHub 的远程仓库中

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

8.4 pull 拉取远程库到本地库

右键点击项目,可以将远程仓库的内容 pull 到本地仓库

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

8.5 clone 克隆远程库到本地

为 clone 下来的项目创建一个工程,然后点击 Next

九.国内代码托管中心-码云

9.1 什么是Gitee

        众所周知,GitHub 服务器在国外,使用 GitHub 作为项目托管网站,如果网速不好的话, 严重影响使用体验,甚至会出现登录不上的情况。针对这个情况,大家也可以使用国内的项 目托管网站-码云。

        码云是开源中国推出的基于 Git 的代码托管服务中心,网址是 https://gitee.com/ ,使用 方式跟 GitHub 一样,而且它还是一个中文网站,如果你英文不是很好它是最好的选择。

9.2 码云创建远程库

点击首页右上角的加号,选择下面的新建仓库

填写仓库名称,路径和选择是否开源(共开库或私有库)

最后根据需求选择分支模型,然后点击创建按钮

远程库创建好以后,就可以看到 HTTPS 和 SSH 的链接

9.3 IDEA 集成码云

1.IDEA 安装码云插件

Idea 默认不带码云插件,我们第一步要安装 Gitee 插件。 如下图所示,在 Idea 插件商店搜索 Gitee,然后点击右侧的 Install 按钮。

Idea 链接码云和链接 GitHub 几乎一样,安装成功后,重启 Idea

Idea 重启以后在 Version Control 设置里面看到 Gitee,说明码云插件安装成功

然后在码云插件里面添加码云帐号,我们就可以用 Idea 连接码云了

9.4 IDEA 连接码云

Idea 连接码云和连接 GitHub 几乎一样,首先在 Idea 里面创建一个工程,初始化 git 工 程,然后将代码添加到暂存区,提交到本地库,这些步骤上面已经讲过,此处不再赘述

将本地代码 push 到码云远程库

自定义远程库链接

给远程库链接定义个 name,然后再 URL 里面填入码云远程库的 HTTPS 链接即可。码云服务器在国内,用 HTTPS 链接即可,没必要用 SSH 免密链接。

然后选择定义好的远程链接,点击 Push 即可

看到提示就说明 Push 远程库成功

去码云远程库查看代码

只要码云远程库链接定义好以后,对码云远程库进行 pull 和 clone 的操作和 Github 一 致,此处不再赘述

9.5 码云复制 GitHub 项目

码云提供了直接复制 GitHub 项目的功能,方便我们做项目的迁移和下载。 具体操作如下:

将 GitHub 的远程库 HTTPS 链接复制过来,点击创建按钮即可

如果 GitHub 项目更新了以后,在码云项目端可以手动重新同步,进行更新!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/901077
推荐阅读
相关标签
  

闽ICP备14008679号