跳转至

git和github

git是什么

git是一个版本控制工具,优势主要在于可以记录文件的修改历史,方便回退。

如果想要使用git,需要先安装git。git安装教程网上很多,这里就不赘述了。

github是什么

github是一个代码托管平台,可以托管各种代码。不过同样也可以用来托管各种文件。比如放一些实验报告,一些图片等。

github运用git作为版本管理工具。

此外国内还有github类似的工具gitee,我们浙江大学还有zjugit等,同样是功能类似的工具。

(根据本人经验,不科学上网上github成功的概率大概是一半。)

fork和clone的区别

一句话来说,fork是云到云,clone是云到地。

上传东西到github教程

先在github上新建一个仓库,并复制仓库地址

在需要提交的文件夹下方,右键选择 git bash here

进入后,依次运行以下命令

git init 这是初始化git 创建版本库 使用后文件夹下会出现一个 .git 的目录

git add . 把文件夹下的所有文件添加到版本库

git commit -m "first commit" 把文件提交到本地仓库,并添加注释 first commit可以自己修改成喜欢的

git remote add origin https://github.com/your_name/your_repo.git 把本地仓库和github仓库关联起来,这里 your_name your_repo 是你的github用户名和仓库名

git push -u origin master 把本地仓库提交到github仓库,-u参数表示设置默认的提交分支,后面可以不加参数直接 git push

有一个需要注意的点,这样提交上去以后的分支是在master,但是现在一般默认分支是main,如果想要修改:

1.初始化时修改

在初始化时指定默认分支为main

git init -b main

2.初始化之后修改

如果已经初始化,依然可以修改本地分支, 如原来本地初始化时默认分支为master, 现在我想让他改为和远程仓库一致变成main

git branch -m master main

其他常用git指令

git pull

拉取最新改动 = git fetch + git merge

git fetch

下载远程最新改动

git branch

查看当前分支

git checkout xx

切换到xx分支

git checkout -b xx

新建xx分支并切换到该分支 --当你想基于当前本地分支的代码状态创建一个新分支时使用(比如从 main 分支切出一个新功能分支)

git branch -u origin/xx

已经创建后为后续指定当前分支的远程分支

git checkout -b xx origin/xx

从远程分支创建并切换本地分支 --当远程仓库已存在某个分支(如 origin/dev),你想在本地创建一个对应的分支进行开发时使用(-b=新建)

git branch -d xx

删除已合并的xx分支

git pull --rebase origin main

拉取远程分支并合并到当前分支 --当本地分支已存在时使用 变基操作

小tips

如果是上传文件,也可以直接上github手动选择文件夹上传,还挺方便的,代码小幅度的修改也可以。因为在本地git很容易连不上服务器。

ssh 上传

主要用于github抽风连不上服务器的时候 稳定push or clone到仓库

可以这样配置本机的ssh:

检查本地主机是否存在ssh key: 在任意目录下cd ~/.ssh ls查看是否存在id_rsa和id_rsa.pub,如果存在,说明已经有SSH Key

如果不存在,则需要生成SSH Key:ssh-keygen -t rsa -C "你的邮箱@balabala.com" 一直按回车即可 注意是注册github的邮箱

通过cat id_rsa.pub查看生成的SSH Key 复制该内容(注意前缀ssh-rsa也要复制)

进入github settings设置 SSH and GPG keys把刚刚复制的内容粘贴上去保存

使用ssh -T git@github.com测试是否连接成功 显示Hi you've successfully authenticated, but GitHub does not provide shell access.即为成功

然后在要上传的目录下使用 git remote -v 如果显示的是https地址 需要改成ssh

使用git remote set-url origin git@github.com:仓库所有者id/仓库名.git

然后采用相同的办法push即可

github上还有很多学长学姐们的课程资料经验仓库,可以多多寻找~