现有一需求,将一键将本地的某个文件push到github上的仓库,本文将带你从零实现。
第一部分、需要做什么?
- 注册一个GitHub账号
- 下载git bash进行版本控制
- 创建一个在GitHub上的仓库
- 在本地构建一个仓库
- 通过ssh或https建立这两个仓库的联系
- 绑定ssh密钥
- 配置本地name和email
第二部分、怎么做?
注册GitHub账号略过
下载git bash
安装一直next即可。
在GitHub上创建一个仓库
在本地创建一个仓库
自己创建一个文件夹,然后打开bash窗口。
输入git init 初始化一个仓库,告诉git这里是一个仓库。然后会多出来一个.git的隐藏文件。
通过ssh或https建立两个仓库的联系
现在github有了一个仓库,本地也有了一个仓库,但是这两者之间并没有建立联系,因此需要通过git remote add origin ssh|https 来建立联系。具体的ssh和https,在github对应的仓库内即可看到。
这样两个仓库就建立了联系。
绑定ssh密钥
两个仓库虽然建立了联系,但是进行通信需要通过ssh进行通信加密,以保证数据的安全传输。
其作用主要包括:
-
身份验证: SSH 密钥用于验证你是 Git 仓库的合法用户。这使得在你与远程 Git 仓库进行交互时,你的身份可以被安全地确认。
-
免密码访问: 一旦你的 SSH 密钥被添加到远程 Git 仓库中,你就可以在没有每次都需要输入密码的情况下进行访问。这提高了操作的便捷性。
输入 cd ~/.ssh 检查是否有密钥,No such file or directort代表没有,需要创建一个。
输入 ssh-keygen -t rsa -C “git账号” ,连续按三次回车即可。复制路径打开公钥。
复制内容后在github上创建一个ssh key。
最后输入ssh -T git@github.com测试是否成功。输入yes即可。
ssh -T
命令用于测试 SSH 连接。
git@github.com
是 GitHub 上 Git 仓库的默认 SSH 地址。
设置本地的name和email
既然git可以用于多人协作,自然需要给每个人一个标识,通过以下命令来指定你的信息。当你进行提交时,会以此来作为标识。
git config --global user.name "Your Name"
git config --global user.email "Your email"
注意:设置username和email时要与github上的对应,因为当你为一个项目贡献代码时,不对应的用户名和邮箱可能导致关联失败,这会使得提交不会计入你的贡献。
例子:
如下图,设置name为test,并进行了一次提交。但是GitHub上的Contributors名单内并没有test。
第三部分、实操
首先确保第二部分的所有步骤都已经完成。
以下是几个简单的git命令:
git add 文件路径
这个命令用于将更改从工作目录添加到暂存区(也称为索引)。暂存区是一个准备下一次提交的更改的地方。
git commit -m "你想要添加的描述"
这个命令将你的更改安全地记录在本地仓库的历史记录中,这表示你可以回到这个状态,或者与其他人分享你的更改。
git push origin 分支名
推送到远程仓库。
例子:
查看远程仓库:
个人的一个实际应用
用ipynb保存一个算法题,然后提交到远程仓库,但是每次都输入这三行命令比较麻烦,因此编写了如下bat文件,用于一键推送,只需要输入文件的名字即可。
@echo off
REM 更改工作目录 换成你的git仓库位置
cd /D D:\WorkSpace\JupyterWorkSpace\learn\leetcode
REM 获取文件名 这里仅获取了文件名
SET /P FILENAME=请输入要上传的文件名:
echo 您输入的文件名为: %FILENAME%
REM 添加文件到暂存区
git add %FILENAME%.ipynb
REM 提交更改
git commit -m "第%FILENAME%题"
REM 推送到远程仓库 分支为main 可以替换成自己的
git push origin main
echo 文件已成功推送到远程仓库。
pause
运行前远程仓库内容:
运行后: