0


Git入门教程

Git

一、Git基础

1、Git介绍

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

2、Git与Github两者区别

Git是一个分布式版本控制系统,简单的说其就是一个软件,用于记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的软件。

Github(https://www.github.com)是一个为用户提供Git服务的网站,简单说就是一个可以放代码的地方(不过可以放的当然不仅是代码)。Github除了提供管理Git的web界面外,还提供了订阅、关注、讨论组、在线编辑器等丰富的功能。

3、Github注册

GitHub: Let’s build from here · GitHubGitHub is where over 100 million developers shape the future of software, together. Contribute to the open source community, manage your Git repositories, review code like a pro, track bugs and features, power your CI/CD and DevOps workflows, and secure code before you commit it.https://github.com/

打开Github官网,点击右上角的“Sign up”按钮。

4、Git安装

Githttps://git-scm.com/![](https://img-blog.csdnimg.cn/9827179d6a0d4b5bae1b877913c12528.png)

选择适配你的电脑的安装包

建议保持默认,选择好安装路径后只需要一直点击下一步即可完成。

桌面空白处右键后点击Git Bash Here,输入 git -- version 检查是安装否安装成功

二、Git的使用

1.本地仓库

1.1工作流程

Git本地操作的三个区域:

工作流程:

主要涉及到四个关键点:

  1. 工作区:本地电脑存放项目文件的地方,比如learnGitProject文件夹;
  2. 暂存区(Index/Stage):在使用git管理项目文件的时候,其本地的项目文件会多出一个.git的文件夹,将这个.git文件夹称之为版本库。其中.git文件夹中包含了两个部分,一个是暂存区(Index或者Stage),顾名思义就是暂时存放文件的地方,通常使用add命令将工作区的文件添加到暂存区里;
  3. 本地仓库:.git文件夹里还包括git自动创建的master分支,并且将HEAD指针指向master分支。使用commit命令可以将暂存区中的文件添加到本地仓库中;
  4. 远程仓库:不是在本地仓库中,项目代码在远程git服务器上,比如项目放在github上,就是一个远程仓库,通常使用clone命令将远程仓库拷贝到本地仓库中,开发后推送到远程仓库中即可;
1.2本地仓库操作

什么是仓库呢?仓库又名版本库,英文名repository,我们可以简单理解成是一个目录,用于存放代码的,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除等操作Git都能跟踪到。

①在安装好后首次使用需要先进行全局配置
桌面空白处右键,点击“Git Bash Here”以打开Git命令行窗口

$ git config --global user.name "用户名"
$ git config --global user.email "邮箱地址"

用户名与邮箱地址建议与github上一致

②创建仓库
当我们需要让Git去管理某个新项目/已存在项目的时候,就需要创建仓库了。注意,创建仓库时使用的目录不一定要求是空目录,选择一个非空目录也是可以的,但是不建议在现有项目上来学习Git,否则造成的一切后果概不负责!

注意:为了避免在学习或使用过程中出现各种奇葩问题,请不要使用包含中文的目录名(父目录亦是如此)。
a. 创建空目录—或者手动创建文件夹,并进入该目录

b. Git仓库初始化(git init)

表现:执行之后会在项目目录下创建“.git”的隐藏目录,这个目录是Git所创建的,不能删除,也不能随意更改其中的内容。
拓展:
③Git常用指令操作

查看当前状态:git status
添加到缓存区:git add 文件名1 文件名2 文件名3......
git add. (添加当前目录至缓存区)
提交至版本库:git commit -m “注释内容”
在后续对于文件(可以操作1个或多个)操作之后,重复使用git add与git commit指令即可。

2.远程仓库

线上仓库以github为例

2.1、线上仓库创建

打开创建仓库页面:Sign in to GitHub · GitHubGitHub is where people build software. More than 100 million people use GitHub to discover, fork, and contribute to over 330 million projects.https://github.com/new

注意:仓库名要求在当前帐号下唯一。

2.2、两种常规使用模式
2.2.1基于http协议

a.创建空目录,名称为shop

b.使用clone指令克隆线上仓库到本地
语法:git clone 线上仓库地址

c.在仓库上做对应的操作(提交暂存区、提交本地仓库、提交线上仓库、拉取线上仓库)

提交到线上仓库的指令:git push

输入add,commit,push指令后会让你授权

提交成功则如下图所示

拉取线上仓库的地址:git pull

注:上班时pull到本地,下班时push到线上,很方便

2.2.2、基于ssh协议(推荐)

该方式与前面https方式相比,只是影响github对于用户的身份鉴权方式,对于git的具体操作(如提交本地、添加注释、提交远程等操作)没有任何影响。

生成公私玥对指令(需先自行安装OpenSSH):ssh-keygen -t rsa -C “注册邮箱”
步骤:
①生成客户端公私玥文件
②将公钥上传到Github

Windows Server 2019、Windows 10、Windows Server 2022可以直接使用Windows设置安装来安装OpenSSH,可直接参考微软官网中OpenSSH管理Windows进行安装和学习。其他版本的Windows则需要对应版本下载OpenSSH-Winxx进行安装。

①打开提示

②创建公私玥对文件,一直回车即可

③上传公钥文件内容(id_rsa.pub)

填写完毕之后保存即可。

通过该命令查询是否成功:ssh -T git@github.com

④执行后续git操作,操作与先前一样
a. clone线上仓库到本地(git clone)

b. 修改文件后添加缓存区、提交本地仓库、提交线上仓库

在push的时候并没有提示要求我们输入帐号密码,因为公私玥已经实现了用户身份鉴权。

线上仓库的效果:
在这里插入图片描述

2.3、分支管理

什么是分支?

在版本回退的章节里,每次提交后都会有记录,Git把它们串成时间线,形成类似于时间轴的东西,这个时间轴就是一个分支,我们称之为master分支。
在开发的时候往往是团队协作,多人进行开发,因此光有一个分支是无法满足多人同时开发的需求的,并且在分支上工作并不影响其他分支的正常使用,会更加安全,Git鼓励开发者使用分支去完成一些开发任务。

分支相关指令:
查看分支:git branch
创建分支:git branch 分支名
切换分支:git checkout 分支名

创建并切换分支:git checkout -b 分支名
删除分支:git branch -d 分支名
合并分支:git merge 被合并的分支名

查看分支:

注意:当前分支前面有个标记“*”。
创建分支:

切换分支:

合并分支:
现在先在dev分支下的readme文件中新增一行并提交本地

切换到master分支下观察readme文件

将dev分支的内容与master分支合并:
删除分支:

注意:在删除分支的时候,一定要先退出要删除的分支,然后才能删除。

合并所有分支之后,需要将master分支提交线上远程仓库中:

三、Git实用技能

1、图形管理工具

①Github for Desktop

Github出品的软件,功能完善,使用方便。对于经常使用GitHub的开发人员来说是非常便捷的工具。界面干净,用起来非常顺手,顶部的分支时间线非常绚丽。

②Source tree

老牌的Git GUI管理工具了,也号称是最好用的Git GUI工具。功能丰富,基本操作和高级操作都非常流畅,适合初学者上手。

③TortoiseGit

对于熟悉SVN的开发人员来说,这个小乌龟图标应该是非常友善了。TortoiseGit 简称 tgit, 中文名海龟Git。它与其前辈TortoiseSVN都是非常优秀的开源版本控制客户端软件

2、忽略文件

场景:在项目目录下有很多万年不变的文件目录,例如css、js、images等,或者还有一些目录即便有改动,我们也不想让其提交到远程仓库的文档,此时我们可以使用“忽略文件”机制来实现需求。

忽略文件需要新建一个名为.gitignore的文件,该文件用于声明忽略文件或不忽略文件的规则,规则对当前目录及其子目录生效。
注意:该文件因为没有文件名,没办法直接在windows目录下直接创建,可以通过命令行Git Bash来touch创建。

常见规则写法有如下几种:

1)/mtk/ 过滤整个文件夹
2)*.zip 过滤所有.zip文件
3)/mtk/do.c 过滤某个具体文件
4) !index.php 不过滤具体某个文件

案例:
①先在本地仓库中新建一个js目录以及目录中js文件


②依次提交本地与线上

③新增.gitignore文件

④编写文件中的规则(根据需要编写)

⑤再次提交本地与线上

观察线上仓库js目录中是否有新增index.js文件:

3.常用命令

1.git clone // 到本地
2.git checkout -b xxx 切换至新分支xxx
(相当于复制了remote的仓库到本地的xxx分支上
3.修改或者添加本地代码(部署在硬盘的源文件上)
4.git diff 查看自己对代码做出的改变
5.git add 上传更新后的代码至暂存区
6.git commit 可以将暂存区里更新后的代码更新到本地git
7.git push origin xxx 将本地的xxxgit分支上传至github上的git


(如果在写自己的代码过程中发现远端GitHub上代码出现改变)
1.git checkout main 切换回main分支
2.git pull origin master(main) 将远端修改过的代码再更新到本地
3.git checkout xxx 回到xxx分支
4.git rebase main 我在xxx分支上,先把main移过来,然后根据我的commit来修改成新的内容
(中途可能会出现,rebase conflict -----》手动选择保留哪段代码)
5.git push -f origin xxx 把rebase后并且更新过的代码再push到远端github上
(-f ---》强行)
6.原项目主人采用pull request 中的 squash and merge 合并所有不同的commit


远端完成更新后
1.git branch -d xxx 删除本地的git分支
2.git pull origin master 再把远端的最新代码拉至本地

4.近期记录

最近github默认分支由master改为main了 ,所以要改git 上的分支名git branch -m master main再push

git push origin master改为git push origin main即可,否则会出现两个分支。

标签: git

本文转载自: https://blog.csdn.net/Jerryqjr/article/details/131923575
版权归原作者 Jerry_ww 所有, 如有侵权,请联系我们删除。

“Git入门教程”的评论:

还没有评论