git使用学习

前言

本文用于记录学习使用git的经历,方便本人以后回顾查找。

初识git以及git的安装

初识git

Git是一个开源的分布式版本控制系统,用于高效敏捷开发工程项目。有了Git,开发人员就不必将不同版本的文件复制成不同的副本, 而是可以通过Git系统的版本控制来完成,尤其是在多人协同开发时,会提供诸多便利。在深度学习领域,大部分的模型与工程都是使用Git 进行维护开发的。

  Git根据文件的存在位置,有工作区、暂存区与版本库区3个概念:

在这里插入图片描述

  • 工作区:计算机里能看到的实际目录。工作区修改后执行git add命令,暂存区的内容会被更新,修改或者新增的文件会被写入git对象区,将对象的ID记录在暂存区的索引中。
  • 暂存区:有时也叫做索引(index),一般存放在.git目录下的index文件中。当执行git commit操作后,暂存区的目录会被写入版本库中, master会做相应的更新。而当执行git checkout与对应的文件时,暂存区的文件会覆盖工作区的文件,清除工作区中还没有添加到暂存区的改动。
  • 版本库区:工作区下会存在一个.git目录,称之为版本库区。当执 行git reset指令时,版本库区的目录树会替换暂存区的目录,但是工作区不受影响。当执行git checkout HEAD时,HEAD指向的master分支会覆盖工作区及暂存区的文件,这个指令较为危险,容易把没有提交的文件清除掉。

git在ubantu系统上的安装:

sudo apt install git

  利用git config指令来配置自己的邮箱与密码信息,具体如下:

git config --global user.name "your name"
git config --global user.email "youremail@youremail.com"

  GitHub 上连接已有仓库时的认证,是通过使用了 SSH 的公开密钥认证方式进行的。现在需要创建公开密钥认证所需的 SSH Key,并将其添加至 GitHub。

ssh-keygen -t rsa -C "youremail@youremail.com" -f filename
# 然后就会看到以下提示
Generating public/private rsa key pair.
Enter file in which to save the key
(/Users/your_user_directory/.ssh/id_rsa): 按回车键
#密码可以不用输入,无脑enter就好
Enter passphrase (empty for no passphrase): 输入密码
Enter same passphrase again: 再次输入密码

  GitHub 中添加公开密钥,今后就可以用私有密钥进行认证了。点击右上角的账户设定按钮(Account Settings,选择 SSH Keys 菜单。点击 Add SSH Key 之后,会出现如图界面。

在这里插入图片描述

  再点击New SSH Key,跳转界面如下:

在这里插入图片描述

  在 Title 中输入适当的密钥名称。Key 部分粘贴 id_rsa.pub 文件里的内容。id_rsa.pub的内容可以用如下方法查看。

cat ~/.ssh/id_rsa.pub  # cat命令可以将文件内容输出到屏幕
#如果是在linux服务器上操作,那么应该将此处生成的公钥内容复制到authorized_keys文件中去
即:
cat id_rsa.pub >> authorized_keys

  在屏幕上得到输出后,将所有内容复制,在成功复制并增加成功后。创建账户时所用的邮箱会接到一封提示“公共密钥添加完成”的邮件。

  完成以上设置后,就可以用手中的私人密钥与 GitHub 进行认证和通信了。

#测试是否能够连接上
ssh -T git@github.com 
#如果出现以下错误

在这里插入图片描述
使用以下指令:

1.ssh-agent bash(这一步可加可不加,如果在第三步出现访问报错时,请务必加上)
2.ssh-agent -s
3.ssh-add ~/.ssh/id_rsa

执行完上述指令后成功为:
在这里插入图片描述
然后再测试是否能够连接上,如果有类似于下面的话,那么恭喜,你成功了:
在这里插入图片描述

创建github仓库并复制到本地

方法一 在网页端创建仓库:

  在github上点击右上角的New repository创建仓库,然后依照自己的想法将仓库名和其他相关信息填写完毕即可。

在这里插入图片描述

  创建成功后查看仓库界面,然后点击code,复制这个ssh指令

在这里插入图片描述

#使用git指令将你刚刚创建的仓库进行复制到本地
git clone ssh指令 filedir(复制到的位置,可以不写,那么会默认在当前文件目录下)

方法二 在本地使用指令创建:

#使用该指令的话,可以以当前文件目录创建仓库
git init 指定目录(不填的话默认当前目录)

上传文件到仓库中去

在该文件目录下创建一个文件,如果该文件没有没更新到仓库里,使用以下命令:

git status

它会显示相应的报告:

在这里插入图片描述

也可以在vscode中查看,图标为绿色说明还没传到仓库上:

在这里插入图片描述

  使用这三个指令就可以完成一个文件的上传:

# 将文件添加到暂存区,第一步
git add filename 
# 写入到版本库中
git commit -m "description of the file"
# 更新到我们的仓库
git push

  如果被拒绝更新,更新被拒绝,报错有n多hints说可能没有连上或者是没那个仓库,有以下解决办法(我这边忘记截图了)。

// 解决方法一(先抓取远程仓库的更新到本地,然后与你的本地仓库合并,(如果有冲突就要解决冲突后再合并),这样就可以使远程仓库和你本地仓库一致了,然后就可以提交修改了):
git pull origin main
// 解决方法二(重定基,可以是历史更加统一,即使提交历史趋向于一条直线):
git pull --rebase origin main

  如果将文件更新成功,那么可以看到终端

在这里插入图片描述
  我们的GitHub仓库也能看到传输的文件,仓库传输成功的文件的说明就是我们commit的message,我的就是这个“try”。

在这里插入图片描述

总结

  虽然已经就已经接触过git了,对github上的仓库实际操作还是首次,以前都只是简单的使用git指令复制代码,然后在本地修改学习。现在体验下来觉得git用起来还是很不错的。由于我这边是服务器和github连接,配置使用过程卡得最久的就是将文件提交到github仓库上,最后重新配置了好几遍私钥和密钥,来回折腾,向authorized_keys中增加公钥的内容,与github连接不通的时候用的三行代码。花了很久的时间,不过弄好之后就能够愉快的学习了。
  vscode也能支持我们完成github文件的更新,相比于自行使用指令更新。vscode支持的服务对我们来说更加友好,相关配置学习见这位大佬的这篇博客VsCode使用Git连接Gitee和GitHub.

参考

  1. 深度学习一(PyTorch物体检测实战).
  2. GitHub入门与实践 [日]大塚弘记/著 支鹏浩 刘斌/译
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值