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即可