网上看了好多文章,终于摸清Git的基本流程了,在此,我将我踩过的坑、总结得出的经验分享给大家~
写在前面:本篇文章着重于介绍Git的安装以及GitHub的基础操作,适合小白快速上手Git,对原理部分不作过多介绍。
主要内容如下:
1 Git的安装及配置
1-1 安装
Windows版Git安装包下载链接:https://git-scm.com/download/win
Mac版、Linux版也可以在官网中找到。
安装包下载完成后双击。值得注意的是,Git可以安装在任意磁盘中,推荐D盘,安装过程一路点击Next即可。
个人建议创建一个单独的文件夹用来存放需要上传到GitHub以及从GitHub下载的文件,比如说我在E盘下创建了一个git code文件夹,后面会有介绍。
安装完成后右键菜单中会出现"Open Git Bash Here"选项(Win11中需要按住Shift再点击右键),点击该选项进入控制台。
1-2 配置用户名与邮箱
(在控制台中复制粘贴不能使用Ctrl+C/V的快捷键,只能右键点击Copy和Paste)
安装好Git后要做的的第一件事是配置用户名与邮箱,依次输入如下命令(用户名和邮箱改为你自己的):
git config --global user.name "name" # 配置用户名
git config --global user.email "xxxxx@xx.com" # 配置邮箱
注意用户名和邮箱都需要用英文双引号" "圈起来。
可以输入如下命令来查看是否配置成功:
git config --global --list # 查看用户配置
配置成功后会显示你的用户名和邮箱,例如:
2 GitHub的基础使用
2-1 配置SSH公钥并创建远程仓库
输入命令:
ssh-keygen -t rsa # 使用了rsa加密算法
在弹出提示后一直按回车,代表采用默认值。如下图所示,路径都采用系统默认路径。
生成完之后可以在C盘用户文件夹下找到.ssh文件夹,在该文件夹下有一个id_rsa.pub文件。
用记事本打开后复制公钥,在GitHub上绑定公钥(GitHub的访问一般需要科学上网,如果不会科学上网的话可以使用Gitee,操作步骤都差不多),步骤如下:
点击右上角你的头像,选择Setting
选择SSH and GPG keys
点击New SSH key
在弹出来的页面中输入自定义的标题和从id_rsa.pub文件中复制过来的公钥即可。
2-2 配置代理(Gitee不需要)
1. 查询是否已有配置代理
输入以下命令:
git config --global http.proxy
git config --global https.proxy
如果没有显示内容的话直接进入步骤3配置代理,否则转步骤2删除配置。
2. 删除以前的配置
输入以下命令:
git config --global --unset http.proxy
git config --global --unset https.proxy
3. 配置代理
以Clash为例,端口号为7890,代理服务器地址:127.0.0.1:7890
输入以下命令配置:
git config --global https.proxy 127.0.0.1:7890
git config --global http.proxy 127.0.0.1:7890
此时输入:
git config --global --list
可以看到不仅有用户名和邮箱信息,还有代理信息。
2-3 本地仓库与GitHub中已创建的远程仓库进行交互
准备工作
首先在GitHub中创建仓库(Repositories):
进入仓库页面
新建仓库
根据下图中的提示按照你的需求创建仓库
不建议勾选"Add a README file",否则在往新仓库中第一次上传文件时会出现一些问题。
将你的默认分支名改为master(默认可能是main),修改方式:在勾选"Add a README file"后(记得不要勾选这项,这里是临时勾选)会在最下方出现默认分支命名选项,点击settings将默认分支命名改为master,与本地默认分支名保持一致。
我创建了一个名为test、默认分支为master的仓库,如下所示(README文件是后来加的):
之后在本地建立目录:
在需要上传的文件所在的文件夹中通过右键菜单进入控制台,我在我的E:\git code\test目录下创建了一个123.txt文件,方便演示。
2-3-1 创建本地目录(可以创建全新目录或克隆远程仓库)
在本地创建全新目录需要执行命令:
git init
执行完毕后文件夹下会多出一个.git隐藏目录,关于本地仓库与远程仓库等所有信息都在这个目录里面。
也可以克隆远程仓库至本地目录:
git clone url # url是别人仓库的地址,比如https://github.com/ultralytics/yolov5.git
以YOLO为例,大家可以尝试输入git clone https://github.com/ultralytics/yolov5.git
来试试代理配置是否成功,如果出现这个页面,恭喜你,配置成功,开始下载!
下载完毕后会多出一个yolov5文件夹。
2-3-2 与远程仓库建立连接
为本地仓库与远程仓库建立连接(第一次时需要登录):
git remote add origin 远程仓库地址 # origin是你的远程仓库的代称,可以改为别的
远程仓库地址可以在你的仓库的Code中找到:
如果是空仓库,则仓库地址在这个位置:
2-3-3 将文件发送至暂存区
使用如下命令,将本地目录(即工作区)下的所有文件上传到暂存区:
git add . # 添加目录下的所有文件到暂存区
2-3-4 提交暂存区中的文件到本地仓库
使用如下命令,将暂存区中的文件提交到本地仓库:
git commit -m "your message" # 提交暂存区中的内容到本地仓库,-m后的消息内容是对本次提交文件的描述
箭头所指部分就是你要在" "中自定义的消息内容,每一次对新文件的提交,都会附加一条该信息。你可以通过这部分来对你本次上传的内容做一个概述。
比如说输入git commit -m "上传新文件"
2-3-5 提交到远程仓库
建立连接后,就可以将本地仓库中的文件上传到远程仓库:
git push -u origin master # master为分支名,本地分支与GitHub上的远程仓库中的分支对应
至此,本地文件123.txt上传完成。
之后想往该仓库中上传文件就只需要把文件放到本地目录中并执行:
git add .
git commit -m ""
git push origin master
而无需进行本地仓库的初始化与建立远程连接,只有在创建新仓库时才需要进行init
和remote add
。
2-3-6 删除远程仓库中的文件
情形1:本地仓库中的文件与远程仓库中的一致且相对应
git add .
git rm [-r] 文件/文件夹 # 这种方式也会同步删除本地文件,-r为可选参数,添加后删除文件夹
git rm [-r] --cache 文件/文件夹 # 不会删除本地文件
git commit -m "删除了某个文件"
git push -u origin master
也可以直接在本地删除文件,接着add
commit
push
,效果一致。
情形2:当情形1中操作出现报错时
这时可以先将远程仓库下载下来再删除:
git clone your_url
git add .
git rm [-r] 文件/文件夹 # 这种方式也会同步删除本地文件,-r为可选参数,添加后删除文件夹
git rm [-r] --cache 文件/文件夹 # 不会删除本地文件
git commit -m "删除了某个文件"
git push -u origin master