Git 入门教程
目录页
- 1. Git介绍
- 2. Git环境配置
- 3. 命令行方式——Git命令代码输入
- 4. 图形化界面(GUI)——Git软件使用方法
- 5. IDE插件/扩展——Vscode中的Git拓展使用方法
- 6. 使用中遇到的问题
1. Git介绍
Git是一个免费开源的分布式版本控制系统,允许开发者高效地管理项目的版本控制,Git与Linux系统是同一个创始人——Linus Torvalds。Git的主要特点包括:
- 分布式版本控制:Git的每个开发者都有自己的本地仓库,可以独立工作,不需要连接到中心服务器。这允许开发者在离线状态下进行开发,并在稍后与他人同步。
- 速度快:Git在处理大量数据时仍然保持高效,这得益于其C语言编写的底层和高效的存储机制。
- 强大的分支功能:Git支持轻量级的分支操作,允许开发者创建新的分支来管理代码的不同部分或不同的项目版本。
- 暂存区设计:Git引入了暂存区的概念,使得提交操作更加灵活,可以暂存文件以备将来提交。
- 合并跟踪:Git的合并跟踪能力使得在合并不同分支的代码时能够清晰地追踪到每个更改的来源。
- 免费开源:Git遵循开源协议,允许任何人查看其代码并参与开发。
Git的这些特性使其成为软件开发和项目管理中的关键工具。它不仅用于代码的版本控制,还可以用于管理文档、图片等任何文件类型的版本控制。此外,Git还支持图形GUI界面和命令行bash两种操作方式,适合不同用户的需求。
1.1. Git工作原理
Git基本工作原理如下所示:
Git的工作原理参考知乎博主程序员三毛的“一文彻底搞清Git工作原理,实战案例”
2. Git环境配置
2.1. Git下载与安装
Git官网地址为https://git-scm.com/downloads
,
Git 官网下载
2.2. Git使用方式
使用Git同步代码有三种方法:
- 命令行:在项目文件夹位置,鼠标右键选择
Open Git Bash here
,即可打开Git的代码运行界面,在此进行代码操作;- 图形化界面(GUI):在项目文件夹位置,鼠标右键选择
Git Gui
,即可打开Git的GUI界面,在此进行上传操作;- IDE插件/扩展:当安装好软件后,在vscode中可以直接使用Git,及时将修改的代码同步到云端Github仓库。
2.3. Git基本配置
2.3.1. Git与Github的通信建立
为建立Git与Github的通信,需要在 Git端 和 GitHub端 分别进行配置,即把Git端
生成的密钥填入GitHub端
,这样在后期文件管理时便不需要密码了。Git配置(.gitconfig
)文件——Git Config源文件一般位于C:\Users\user_name
目录下。各端的配置流程如下所示:
-
Git端生成SSH密钥,密钥文件位于
C:\Users\user_name\.ssh
目录下,在这个用户主目录下,看看有没有.ssh
目录,如果有,再看看这个目录下有没有id_rsa
和id_rsa.pub
这两个文件,如果已经有了,可直接跳过,说明该电脑之前已经创建过密钥了。删除该目录下的文件即可删除已配置好的密钥。- 命令行方式创建密钥:可以在Windows下打开Git Bash,输入以下命令:
$ ssh-keygen -t rsa -C"[email protected]"
; - GUI方式创建密钥可打开
Git GUI
,按照help-->show SSH Key-->generate key路径生成,如下图;
Git端配置方法
- 命令行方式创建密钥:可以在Windows下打开Git Bash,输入以下命令:
-
GitHub端新建一个SSH密钥,并将从Git端得到的密钥输入即可实现通信,操作流程如下图。
GitHub端配置方法 -
值得说明的是,我们的不同设备(不同电脑——办公室or笔记本)都只需要添加一次即可,后续便不用再添加了。
2.3.2. 忽略不同步文件
可以在仓库中创建一个.gitignore
文件,通过定义规则告诉git
可以忽略那些文件和文件夹,以减少代码仓库的体积,提高操作效率。
使用说明参考:
- CSDN博文.gitignore忽略规则、语法、检查文件详解;
3. 命令行方式——Git命令代码输入
git命令符
是基于命令行界面的工具,它使用的语言是Shell脚本
语言。 Shell脚本
语言是一种解释型的编程语言,它提供了与操作系统交互的方法,可以执行一系列的命令和操作。在Git中,使用的是Bash Shell
,它是常见的Unix/Linux
系统默认的命令行工具。
命令行的方式是最基本和最常用的方式,就是在终端中输入Git命令的方式来使用Git。Git
命令运行方式有:
- 键入Win+R打开
cmd
窗口运行; - 在
所有程序
位置打开Git Bash Here
运行。
参考:
- CSDN博文——史上最简单的Git入门教程;
3.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 |
3.2. git本地操作
- 初始化本地仓库:进入项目文件夹,在命令行输入:
git init
,将会在项目文件夹中创建一个.git
文件夹,这个文件夹用于保存当前项目的本地仓库和暂存区数据。 - 设置用户名和邮箱:如果设置全局的用户名和邮箱,可带一个
--global
参数。git config user.name "your_name" #设置用户名 git config user.email "your_email" #设置邮箱
- 添加到暂存区
git add 文件或目录名 #添加文件或目录到暂存区 git add . #添加当前目录(包含子目录)所有删除、变更、新增的文件到暂存区 git rm 文件1 文件2... --cached #从暂存区删除文件
- 提交到仓库
git commit -m "备注" #将暂存区的文件提交到本地仓库 git reset --hard 版本号 #彻底恢复到指定的版本(慎用)
- 查看命令
git status #查看工作区和暂存区的状态,哪些文件添加到暂存区,哪些文件有变化但是没有添加到暂存区。 git show #显示最近一次的提交 git log #查看所有提交记录(当前分支),如果记录过多可以按上下翻页键或光标键,按Q退出。 git reflog #查看所有操作记录
- 切换版本
git checkout 版本号/标签/分支 git用HEAD指针记录当前工作区所处的版本。
- 标签:可以在某个重要的版本上加一个标签,这样切换时就不需要记忆复杂的版本号哈希值了。
git tag 标签名 #在当前版本上创建标签 git tag 标签名 版本号 #在指定版本上创建标签 git tag #列出所有标签 git checkout 标签名 #切换到指定标签 git show 标签名 #显示标签所在的版本信息 git tag -d 标签名 #删除标签
- 分支:分支用于实验性开发、修复BUG、多任务开发等等。第一次提交会产生一个主分支
master
/main
,分支的相关命令如下:git branch #查看分支,显示结果前面有个*号的是目前所处的分支 git branch 分支名称 #创建分支 git checkout 分支名称 #切换到分支 git branch -m 分支名称 #当前分支重命名 git branch -d 分支名称 #删除分支 git merge 分支名称 #将指定分支合并到当前分支
3.3. git远程仓库操作
当团队合作开发时就需要远程仓库,可以自己搭建远程仓库,也可以使用网络上免费的代码托管平台。目前全世界知名度最高的代码托管平台是github
,如果考虑外网网速慢的问题可以使用国内的gitee
(码云)。
- 添加远程仓库:增加一个名称为
origin
的远程仓库,以后提交或拉取代码时只需要使用origin
别名即可,命令如下:git remote add origin 远程仓库地址
- 推送push:如果省略分支名称,则默认为本地当前分支名。如果省略主机名,默认使用origin。每次只会推送一个分支,如果本地有多个分支,可以一个一个推送。
git push origin 本地分支名:远程分支名 git push origin master #将当前分支代码 push 到别名为 origin 的远程仓库中的 master 分支上
- 克隆clone:用
git clone
命令(git clone 远程仓库地址
)可以将远程仓库克隆到本地仓库,默认只会克隆master
/main
分支,其他分支创建为“远程跟踪分支”,默认是不显示的,可以使用一下命令:git branch -a #查看所有分支,包括隐藏的
- 追踪分支:
git checkout 远程分支全名
,git会找到同名的远程跟踪分支,自动从同一个版本创建一个新的本地分支,同时切换到新的本地分支。 - 拉取pull:将远程仓库中的代码拉到本地仓库和工作区。
git pull 远程主机名 远程分支名:本地分支名 git pull #拉取远程仓库中同名分支到本地当前分支,使用默认主机名origin
3.4. 具体操作
3.4.1. 从GitHub向本地下载文件
- 获取GitHub中的代码仓库的SSH;
- 在本地打开一个文件夹,点击右键,选择
Git Bash Here
; - 在指令中输入:
git clone ‘代码仓库的SSH地址’
命令行,达到100%,下载成功。
通过命令行方式下载GitHub文件至本地
4. 图形化界面(GUI)——Git软件使用方法
参考:
- CSDN的zyk_520博主的GIT GUI(git的可视化工具)一文。
4.1. 通过Git Gui上传文件至GitHub
通过Git Gui上传文件至GitHub的步骤如下所述,分为GitHub端的操作和Git Gui端的操作,详细操作流程可见下图,高清图见附件。
GitHub 中操作步骤:
- 在Git Hub中创建一个项目仓库;
- 输入代码仓库的基本信息,名称、描述、是否公开;
- 在Git Hub上创建代码仓库成功,复制SSH。
在Git Gui中的操作步骤如下:
- 进入需要上传文件的文件夹中,点击右键,选择“Git Gui Here”,弹出Git Gui窗口;
- 因为当前需要上传,所以点击Create New Repository,选择文件夹路径,点击create;
- 按Rescan -> stage changed -> sign off ->commit ->push 顺序执行提交步骤;
- 在Arbitrary Location中输入Git Hub中对应代码仓库的SSH地址;
- 上传成功,结束。
Git Gui上传文件至GitHub操作步骤总览
4.2. 从GitHub向本地下载文件
通过Git Gui下载GitHub文件至本地的步骤如下所述,分为GitHub端获取仓库的ssh地址、Git Gui端克隆,具体如下图:
- 获取GitHub中的代码仓库的SSH;
- 打开Git Gui,点击
Clone Existing Repository
- 输入
Source Location
和Target Directory
,这的注意的是如果选择的本地Target Directory
文件夹是未创建的,工具会自动创建,最后点击clone
即可将仓库克隆至本地。
通过Git Gui下载GitHub文件至本地
5. IDE插件/扩展——Vscode中的Git拓展使用方法
Git 安装
6. 使用中遇到的问题
6.1. Git上传失败(错误代码:unable to access … Failed to connect to github.com port 443: Timed out)
出现上传失败的问题,一般有两种解决方法:
- 通过切换"提子"节点(一般选择美国节点会好些),如果不行就多切换几次即可;
- 采用配置公钥的方法。