Git入门教程

Git 入门教程

目录页

git配图

Git 入门教程

1. Git介绍

Git是一个免费开源的分布式版本控制系统,允许开发者高效地管理项目的版本控制,Git与Linux系统是同一个创始人——Linus Torvalds。Git的主要特点包括:

  1. 分布式版本控制:Git的每个开发者都有自己的本地仓库,可以独立工作,不需要连接到中心服务器。这允许开发者在离线状态下进行开发,并在稍后与他人同步。
  2. 速度快:Git在处理大量数据时仍然保持高效,这得益于其C语言编写的底层和高效的存储机制。
  3. 强大的分支功能:Git支持轻量级的分支操作,允许开发者创建新的分支来管理代码的不同部分或不同的项目版本。
  4. 暂存区设计:Git引入了暂存区的概念,使得提交操作更加灵活,可以暂存文件以备将来提交。
  5. 合并跟踪:Git的合并跟踪能力使得在合并不同分支的代码时能够清晰地追踪到每个更改的来源。
  6. 免费开源:Git遵循开源协议,允许任何人查看其代码并参与开发。

Git的这些特性使其成为软件开发和项目管理中的关键工具。它不仅用于代码的版本控制,还可以用于管理文档、图片等任何文件类型的版本控制。此外,Git还支持图形GUI界面和命令行bash两种操作方式,适合不同用户的需求。

1.1. Git工作原理

Git基本工作原理如下所示:


Git的工作原理参考知乎博主程序员三毛的“一文彻底搞清Git工作原理,实战案例

2. Git环境搭建

2.1. Git软件安装与初识

  1. 进入Git官网(如下图,地址:https://git-scm.com/downloads)获取软件下载链接及基本软件介绍;

Git 官网下载

2.2. Git的几种使用方式

使用Git同步代码有三种方法:

  1. 命令行:在项目文件夹位置,鼠标右键选择Open Git Bash here,即可打开Git的代码运行界面,在此进行代码操作;
  2. 图形化界面(GUI):在项目文件夹位置,鼠标右键选择Git Gui,即可打开Git的GUI界面,在此进行上传操作;
  3. IDE插件/扩展:当安装好软件后,在vscode中可以直接使用Git,及时将修改的代码同步到云端Github仓库。

3. Git同步文件的基本配置

3.1. Git与Github的通信建立

为建立Git与Github的通信,需要在 Git端 和 GitHub端 分别进行配置,即把Git端生成的密钥填入GitHub端,这样在后期文件管理时便不需要密码了。Git配置(.gitconfig)文件——Git Config源文件一般位于C:\Users\user_name目录下。各端的配置流程如下所示:

  1. Git端生成SSH密钥,密钥文件位于C:\Users\user_name\.ssh目录下,在这个用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsaid_rsa.pub这两个文件,如果已经有了,可直接跳过,说明该电脑之前已经创建过密钥了。删除该目录下的文件即可删除已配置好的密钥。注意:在创建密钥的时候会提示输入密码,如果后期不想每次提交都输入密码,那么这里可以设置密码为(不输入任何内容)。

    • 命令行方式创建密钥:可以在Windows下打开Git Bash,输入以下命令:$ ssh-keygen -t rsa -C"youremail@example.com"
    • GUI方式创建密钥可打开Git GUI,按照help-->show SSH Key-->generate key路径生成,如下图;


      Git端配置方法

  2. GitHub端新建一个SSH密钥,并将从Git端得到的密钥输入即可实现通信,操作流程如下图。


    GitHub端配置方法

  3. 值得说明的是,我们的不同设备(不同电脑——办公室or笔记本)都只需要添加一次即可,后续便不用再添加了。

3.2. 忽略不同步文件

可以在仓库中创建一个.gitignore文件,通过定义规则告诉git可以忽略那些文件和文件夹,以减少代码仓库的体积,提高操作效率。

使用说明参考:

  1. CSDN博文.gitignore忽略规则、语法、检查文件详解

4. 💫命令行方式——Git命令代码输入

git命令符是基于命令行界面的工具,它使用的语言是Shell脚本语言。 Shell脚本语言是一种解释型的编程语言,它提供了与操作系统交互的方法,可以执行一系列的命令和操作。在Git中,使用的是Bash Shell,它是常见的Unix/Linux系统默认的命令行工具。命令行的方式是最基本和最常用的方式,就是在终端中输入Git命令的方式来使用Git。Git命令运行方式有:

  1. 键入Win+R打开cmd窗口运行;
  2. 所有程序位置打开Git Bash Here运行。

最常用的Git命令如下:

Git新建仓库时的提示命令

  • 创建一个新仓库时会用到的命令:
echo "# test1" >> README.md
git init
git add README.md
git commit -m "first commit"
git branch -M main
git remote add origin git@github.com:zpy1160390580/test1.git
git push -u origin main

将现有文件推送至已有仓库用到的命令:

git remote add origin git@github.com:zpy1160390580/test1.git
git branch -M main
git push -u origin main

4.1. 常用Git命令

常用Git命令如下表所示:

Git配置

操作 Git命令
配置信息查看 git config --global --list
配置用户名 git config --global user.name "your_name"
配置邮箱 git config --global user.email your_email
版本查看 git -v
``
操作 Git命令
创建仓库 git init
查看仓库状态 git status
添加到暂存区 git add
提交 git commit
推送到远程仓库 git push
拉取远程仓库内容到本地 git pull
克隆已有仓库内容 git clone

4.2. git本地操作

  1. 初始化本地仓库:进入项目文件夹,在命令行输入:git init,将会在项目文件夹中创建一个.git文件夹,这个文件夹用于保存当前项目的本地仓库和暂存区数据。
  2. 设置用户名和邮箱:如果设置全局的用户名和邮箱,可带一个--global参数。
    git config  user.name "your_name"   #设置用户名
    git config  user.email "your_email" #设置邮箱
    
  3. 添加到暂存区
    git add 文件或目录名    #添加文件或目录到暂存区
    git add .              #添加当前目录(包含子目录)所有删除、变更、新增的文件到暂存区
    git rm 文件1 文件2... --cached      #从暂存区删除文件
    
  4. 提交到仓库
    git commit -m "备注"     #将暂存区的文件提交到本地仓库
    git reset --hard 版本号  #彻底恢复到指定的版本(慎用)
    
  5. 查看命令
    git status  #查看工作区和暂存区的状态,哪些文件添加到暂存区,哪些文件有变化但是没有添加到暂存区。
    git show    #显示最近一次的提交
    git log     #查看所有提交记录(当前分支),如果记录过多可以按上下翻页键或光标键,按Q退出。
    git reflog  #查看所有操作记录
    
  6. 切换版本
    git checkout 版本号/标签/分支
    git用HEAD指针记录当前工作区所处的版本。
    
  7. 标签:可以在某个重要的版本上加一个标签,这样切换时就不需要记忆复杂的版本号哈希值了。
    git tag 标签名           #在当前版本上创建标签
    git tag 标签名 版本号    #在指定版本上创建标签
    git tag                 #列出所有标签
    git checkout 标签名     #切换到指定标签
    git show 标签名         #显示标签所在的版本信息
    git tag -d 标签名       #删除标签
    
  8. 分支:分支用于实验性开发、修复BUG、多任务开发等等。第一次提交会产生一个主分支master/main,分支的相关命令如下:
    git branch             #查看分支,显示结果前面有个*号的是目前所处的分支
    git branch 分支名称     #创建分支
    git checkout 分支名称   #切换到分支
    git branch -m 分支名称  #当前分支重命名
    git branch -d 分支名称  #删除分支
    git merge 分支名称      #将指定分支合并到当前分支
    

4.3. git远程仓库操作

当团队合作开发时就需要远程仓库,可以自己搭建远程仓库,也可以使用网络上免费的代码托管平台。目前全世界知名度最高的代码托管平台是github,如果考虑外网网速慢的问题可以使用国内的gitee(码云)。

  1. 添加远程仓库:增加一个名称为origin的远程仓库,以后提交或拉取代码时只需要使用 origin别名即可,命令如下:
    git remote add origin 远程仓库地址
    
  2. 推送push:如果省略分支名称,则默认为本地当前分支名。如果省略主机名,默认使用origin。每次只会推送一个分支,如果本地有多个分支,可以一个一个推送。
    git push  origin 本地分支名:远程分支名
    git push origin master #将当前分支代码 push 到别名为 origin 的远程仓库中的 master 分支上
    
  3. 克隆clone:用git clone命令(git clone 远程仓库地址)可以将远程仓库克隆到本地仓库,默认只会克隆master/main分支,其他分支创建为“远程跟踪分支”,默认是不显示的,可以使用一下命令:
    git branch -a  #查看所有分支,包括隐藏的
    
  4. 追踪分支git checkout 远程分支全名,git会找到同名的远程跟踪分支,自动从同一个版本创建一个新的本地分支,同时切换到新的本地分支。
  5. 拉取pull:将远程仓库中的代码拉到本地仓库和工作区。
    git pull 远程主机名 远程分支名:本地分支名
    git pull #拉取远程仓库中同名分支到本地当前分支,使用默认主机名origin
    

4.4. Git大文件上传

超过100Mb的文件上传至Github需要使用Git Large File Storage这个工具。Git LFS(Large File Storage)是一个 Git 扩展工具,用于管理大文件。它通过将大文件存储在 Git 仓库之外,并在仓库中保留文件的引用,来解决 Git 对大文件的处理效率和限制问题。

4.4.1. Git LFS 使用方法

  • 安装 Git LFS:首先,你需要在本地系统上安装 Git LFS。

  • 初始化 Git LFS:在你的 Git 仓库中,使用以下命令来初始化 Git LFSgit lfs install,这将在当前仓库中启用 Git LFS

  • 跟踪大文件:使用以下命令告诉 Git LFS 跟踪特定文件类型的大文件:git lfs track "*.ext"。将 *.ext 替换为你要跟踪的文件类型的模式,例如 *.mp4*.zip。Git LFS 将会为匹配的文件类型启用跟踪。

  • 添加和提交大文件:使用常规的 Git 命令 git addgit commit 将大文件添加到 Git LFS 管理中,并创建一个包含大文件引用的提交,命令如下:

    git add large_file.ext
    git commit -m "Add large file using Git LFS"
    
  • 推送和拉取大文件:使用常规的 git pushgit pull 命令来推送和拉取包含大文件的提交。Git LFS 会自动处理大文件的上传和下载。

4.4.2. 具体使用过程

  1. 准备工作:
    • 在电脑中自选目录新建一个文件夹(例:G:\01-Github\test);
    • 在GitHub上新建一个仓库(Repositories,例:test);
  2. 进入刚刚新建的电脑本地文件夹,打开Git Bash:进行初始化仓库,输入如下代码:git init

Git大文件上传过程

4.5. 具体操作过程展示

4.5.1. 从GitHub向本地下载文件

  1. 获取GitHub中的代码仓库的SSH;
  2. 在本地打开一个文件夹,点击右键,选择Git Bash Here;
  3. 在指令中输入:git clone ‘代码仓库的SSH地址’命令行,达到100%,下载成功。

通过命令行方式下载GitHub文件至本地

5. 💫图形化界面(GUI)——Git软件使用方法

参考

  1. CSDN的zyk_520博主的GIT GUI(git的可视化工具)一文。

5.1. 通过Git Gui上传文件至GitHub

通过Git Gui上传文件至GitHub的步骤如下所述,分为GitHub端的操作和Git Gui端的操作,详细操作流程可见下图,高清图见附件

GitHub 中操作步骤:

  1. 在Git Hub中创建一个项目仓库;
  2. 输入代码仓库的基本信息,名称、描述、是否公开;
  3. 在Git Hub上创建代码仓库成功,复制SSH。

在Git Gui中的操作步骤如下:

  1. 进入需要上传文件的文件夹中,点击右键,选择“Git Gui Here”,弹出Git Gui窗口;
  2. 因为当前需要上传,所以点击Create New Repository,选择文件夹路径,点击create;
  3. 按Rescan -> stage changed -> sign off ->commit ->push 顺序执行提交步骤;
  4. 在Arbitrary Location中输入Git Hub中对应代码仓库的SSH地址;
  5. 上传成功,结束。

Git Gui上传文件至GitHub操作步骤总览

5.2. 从GitHub向本地下载文件

通过Git Gui下载GitHub文件至本地的步骤如下所述,分为GitHub端获取仓库的ssh地址、Git Gui端克隆,具体如下图:

  1. 获取GitHub中的代码仓库的SSH;
  2. 打开Git Gui,点击Clone Existing Repository
  3. 输入Source LocationTarget Directory,这的注意的是如果选择的本地Target Directory文件夹是未创建的,工具会自动创建,最后点击clone即可将仓库克隆至本地。

通过Git Gui下载GitHub文件至本地

6. 💫IDE插件/扩展——Vscode中的Git拓展使用方法


Git 安装

7. 使用中遇到的问题

7.1. Git提示:remote origin already exists

这是由于该项目已经配置过远程仓库地址,当再次将项目提交到其它的远程仓库地址时就会出现提示远程源点已存在。可以通过以下步骤解决,具体解决步骤可以参考该图

  1. 查看现有远程仓库的信息(git remote -v);
  2. 删除现有的远程仓库信息(git remote rm origin);
  3. 建立新的远程仓库地址(git remote add origin + 新的远程仓库地址);

7.2. Git上传失败(错误代码:unable to access … Failed to connect to github.com port 443: Timed out)

出现上传失败的问题,一般有两种解决方法:

  1. 通过切换"提子"节点(一般选择美国节点会好些),如果不行就多切换几次即可;
  2. 采用配置公钥的方法。

7.3. Git报错fatal: unable to access https://github.com/.../.git:Recv failure Connection was reset

系统设置(网络-->代理)搜索代理,然后点击编辑按钮。打开代理服务器,端口设置为7890,这个对你正常上网没有影响,可以放心设置。然后点击保存。

Recv failure Connection was reset

Recv failure Connection was reset

7.4. Git报错fatal: unable to access https://github.com/.../.gitOpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 0 错误

解决方案:

  1. 方案一:将https替换成git,具体操作方法为:打开项目.git文件夹里面的config文件,修改里面的url地址,将原来的 HTTP 地址改为 SSH地址。
  2. 方案二:两条命令取消代理协议
    git config http.sslVerify "false"
    git config --global http.sslVerify "false"
    

8. 参考资料

参考:

  1. 廖雪峰的官方网站 (liaoxuefeng.com)——Git教程
  2. MElephant的博客文章——Git的详细学习介绍 版本控制
  3. kk小新的博客文章——Git
posted @ 2024-05-23 17:26  yibeijiu  阅读(49)  评论(0)    收藏  举报