前言
git分为三部分,第一部分是自己的本地文件,第二部分是缓存区,最后一个是本地的仓库。git add xx
命令是将本地文件添加到缓存区;git commit
是将缓存区的文件提交到本地仓库;git push
则是将本地仓库的内容推送到远程github仓库。
一:配置公钥
首先应该检查计算机是否存在ssh密钥:
cd ~/.ssh
如果没有提示:No such file or directory 说明你不是第一次使用git,执行下面的操作,清理原有ssh密钥。
$ ls
config id_rsa id_rsa.pub known_hosts
$ mkdir key_backup
$ cp id_rsa* key_backup
$ rm id_rsa*
接下来开始做好准备工作,使本地git获得github的提交权限。
-
设置用户名和邮箱
-
git config --global user.name 'your_name'
-
git config --global user.email 'your_email'
-
生成SSH密匙
ssh-keygen -t rsa -C 'your_email'
,email和你设置的git邮箱一致 -
在指令执行后会让你确定密钥保存地址和设置密码,这些不用管,全部默认回车就好。
-
添加生成的id_rsa.pub文件中的公钥(打开复制)到github的setting / SSH AND GPG KEY / SSH keys
-
最后测试是否关联成功,git bash输入
ssh git@github.com
, 如果提示successfully
则成功。
二:创建一个测试仓库
-
来到
github
仓库首页,点击New
,填写新仓库信息:- Repository name: test - Description : this is a test - 选择Public(公开) - Add a README file - 点击Create repository
-
我们同时需要在本地创建一个名字不相同的项目文件夹。
- github用户名
username
仓库名(也就是项目名)resname
$ makdir ~/hello //创建一个项目hello $ cd ~/hello //打开这个项目 $ git init //初始化 $ touch README //创建README文件 $ git add README //将README文件添加到缓存区 $ git reset HEAD -- . //撤销之前所有的 git add操作 $ git commit -m 'first commit'//将缓存区的文件提交到本地仓库,并注释信息'first commit' $ git remote add origin https://github.com/username/resname.git //远程连接github仓库 $ git pull origin master //上传到github之前先pull一下远程仓库 $ git push -u origin master //上传代码到github远程仓库
- github用户名
完成上述操作后,会弹出一个登录窗口让你打开浏览器:
然后在终端上会出现以下信息:
Counting objects: 100% (3/3), done.
Writing objects: 100% (3/3), 204 bytes | 204.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
remote:
remote: Create a pull request for 'master' on GitHub by visiting:
remote: https://github.com/yzp-99/test/pull/new/master
remote:
To https://github.com/yzp-99/test.git
* [new branch] master -> master
Branch 'master' set up to track remote branch 'master' from 'origin'.
这说明已经大功告成了!
现在查看github
上面的test
项目,是不是发现已经将本地中的README
文件更新上来了。
三:避坑指南
- 在远程连接时:
$ git remote add origin git@github.com:username/hello.git
错误提示:fatal: remote origin already exists.
解决办法:
$ git remote rm origin
然后再执行:$ git remote add origin git@github.com:username/hello.git就不会报错误了
- 在提交推送时:
$ git push origin main
错误提示:error:failed to push som refs to.......
解决办法:
git pull --rebase origin main // 先把远程服务器github上面的文件pull下来,再push 上去。
- 在合并分支时:
git merge master
错误提示:fatal: refusing to merge unrelated histories
解决办法:
git merge master --allow-unrelated-histories