参考文章史上最简单的 GitHub 教程
ssh
,如图所示,此结果表示我们已经安装 SSH输入ssh-keygen -t rsa
命令,表示我们指定 RSA 算法生成密钥,然后敲三次回车键,期间不需要输入密码,之后就就会生成两个文件,分别为id_rsa
和id_rsa.pub
,即密钥id_rsa
和公钥id_rsa.pub
. 对于这两个文件,其都为隐藏文件,默认生成在以下目录:
Linux 系统:~/.ssh
Mac 系统:~/.ssh
Windows 系统:C:\Documents and Settings\username\\.ssh
Windows 10 ThinkPad:C:\Users\think\.ssh
密钥和公钥生成之后,我们要做的事情就是把公钥id_rsa.pub
的内容添加到 GitHub,这样我们本地的密钥id_rsa
和 GitHub 上的公钥id_rsa.pub
才可以进行匹配,授权成功后,就可以向 GitHub 提交代码啦!
如图所示,进入我们的 GitHub 主页,先点击右上角所示的倒三角▽图标,然后再点击Settins,进行设置页面;点击我们的头像亦可直接进入设置页面:
选择SSH and GPG keys 选 New SSH key 。图所示,我们只需要将公钥id_rsa.pub
(记事本打开)的内容粘贴到Key处的位置(Titles的内容不填写也没事),然后点击Add SSH key 即可
push
:该单词直译过来就是“推”的意思,如果我们本地的代码有了更新,为了保持本地与远程的代码同步,我们就需要把本地的代码推到远程的仓库,代码示例:
git push origin master
pull
:该单词直译过来就是“拉”的意思,如果我们远程仓库的代码有了更新,同样为了保持本地与远程的代码同步,我们就需要把远程的代码拉到本地,代码示例:
git pull origin master
注:
origin为远程仓库名,即github上创建的仓库
一般情况下,我们在push
操作之前都会先进行pull
操作,这样不容易造成冲突。
这时我们就可以直接将远程仓库clone到本地。通过clone命令创建的本地仓库,其本身就是一个 Git仓库了,不用我们再进行init初始化操作,而且自动关联远程仓库。
我们只需要在这个仓库进行修改或者添加等操作,然后commit提交即可。
Git Bash
,将远程仓库java-basic02
克隆到本地文件夹qx-warehouse
下,因为是克隆的远程仓库,所以克隆过来的java-basic02
是一个本地仓库,无需进行init
初始化成一个仓库输入指令后回车
打开克隆到本地的仓库java-basic02
.git文件夹说明他所在文件夹是一个git仓库
在输入git status命令后显示有两个文件未被追踪,
也就是我们刚刚复制过来的src文件没有提交。
在真正提交代码之前,需要先进行git add操作,
git add命令并没有把文件提交到 Git 仓库,而是把文件添加到了「临时缓冲区」
如果上句运行正常,又是第一次向远程仓库提交代码的时候,
会弹出验证窗口。如果浏览器正在登着github账号,直接选浏览器验证即可,验证后如下
然后检查远程仓库有刚push的内容就成功了
如果不正常,我这里是不正常,报错显示java-basic02不是一个库
应该是克隆过来自动关联出错了,就重新添加一下远程关联的库
git remote add java-basic02 地址
地址就是远程仓库java-basic02的code->https那里复制
参考这篇解决git 操作报错(fatal: ‘xxx’ does not appear to be a git repository)
检查远程仓库
发现已经push成功刚刚提交到本地仓库的src
最后咋们就是说,检查了一下远程仓库跟本地仓库内容完全一样,src也在!
就是一整个美美成功
简述:
在本地新建项目,并init初始化成本地仓库。
根据远程仓库的地址,remote关联远程仓库
改本地仓库默认分支master为main,再把远程代码pull拉到本地,保持同步
最后将本地仓库push填到远程仓库
barbie-diary
作为本地仓库与远程仓库java-basics
关联java-basics
git init
把当前文件夹初始化成一个仓库,初始化过后文件夹中会有一个.git文件夹,说明此文件夹是一个本地仓库。
git remote add 远程仓库名 远程仓库地址
关联本地和远程,注意,赋值远程仓库地址时右键选择paste,不可以Ctrl+V
git remote -v
我们的远程仓库默认分支是main,但init初始化的本地仓库分支为master 需要将master改为main
参考文章把git的默认分支master修改成main
注意: 个人目前理解,默认分支即主分支
1) 修改已创建项目的主分支为main
git branch
查看仓库的分支情况,名称前带*的为主分支
看后缀如果不在master分支下,则git checkout master
切换到主分支master
重命名分支master为main: git branch -M main
2 ) 一次性修改,把默认分支改为main,这样之后再初始化本地仓库主分支都会是main而不是master
需要使用2.28版本以后的git
windows中git的配置文件在C:\Users\<用户名>
下
[init]
defaultBranch = main
如图
经过上面的修改, 当我们使用git init初始化某个项目的时候, 默认就会使用main做为主分支
除了手动修改配置文件外, 也可以使用git命令, 效果和手动修改没区别
git config --global init.defaultBranch main
方法2)只是让以后创建的项目默认分支为main, 但对于已经创建的项目则无能为力
git pull java-basics main
命令,将远程仓库的内容同步到本地仓库如上图所示,显然我们已经把远程java-basics
仓库里面的README.md
文件和src
同步到了本地仓库。接下来,在本地仓库粘贴src
文件,里面是本次想提交的代码。如果直接粘贴另一个项目的src
将覆盖之前的,所以重命名新的src
为list
10_IO
参考网上解决办法:解除ssl验证后,再上传就OK了
git config --global http.sslVerify "false"
如图,已经将本地仓库barbie-diary的内容同步到了远程仓库java-basics。
因为现在的远程仓库分支是main
,在Bash
执行一些操作时,需要将教程中部分指令的master
改为main
在git命令行中重新输入命令:
先输入:$ git config --global user.name “你的名字”
回车后,
再输入:$ git config --global user.email “你的邮箱地址”
完成后再提交就没问题了。
输入- - global
的时候, 用自己的键盘敲出来!多敲几次,确认没有打错
原因:
因为git在拉取或者提交项目时,中间会有git的http和https代理,但是我们本地环境本身就有SSL协议了,所以取消git的https代理即可,不行再取消http的代理。
原因还有一个,当前代理网速过慢,所以偶尔会成功,偶尔失败。
解决方法:
git config --global --unset http.proxy
git config --global --unset https.proxy
原因:
取消git本身的https代理,使用自己本机的代理,如果没有的话,其实默认还是用git的
解决方法:
git config --global http.sslVerify "false"
git config --global --unset http.proxy
git config --global --unset https.proxy
参考完美解决,fatal unable to access ‘httpsgithub.comxxxxxxxxxxx.git’ Recv failure Connection was reset
说明:不能进入这个git仓库,连接被重设(重新设置)了
删除代理,如果本身你没有开代理,那就不要配置代理信息
先查看git配置
git config --global -l
git config --global --unset.http.proxy
git config --global --unset.https.proxy
从Windows搜索中输入打开cmd,将ipconfig/flushdns复制,点击回车,清理DNS缓存
成功解决!