Git的各种总结

真的是说出来都是泪😭被Git整整蹂躏了一个多的星期,从Git上传项目到github到git创建私有库可以说是步步是坑。期间甚至一度的彪脏话一度的奔溃,虽然至本片总结算是解决了大部分难题但还是有很多问题的具体真正的解决步骤没有弄清楚(因为很多步骤感觉都是凑巧成功的—惭愧)。不管怎么样还是得好好的把解决了的问题总结总结。

Git上传代码至GitHub

其实这个问题我是在创建私有库的支行才碰到的但是发现这个其实是基础的东西(惭愧again),因为之前一直使用Desktop管理项目没使用过Git,现在发现坑还真不少….

###1.New repository 创建项目仓库

step_1

step_2

  • Repository name 是必填的 Description是选填的 在下面是项目是否公开 README看自己情况是否自动生成后期也可以在添加修改 最后下面两个下拉选择第一个应该是对应开发语言的选项 第二个是相关证书(没研究过貌似都选择 MIT License)

step_3

  • Create repository 之后会用到最上面的项目地址

我觉得还是得从问题上总结比较合理,毕竟有效快速的解决问题才是我们所需要的。

###问题复现 - SSH Key

  • 因为现在用的Mac经过蹂躏后有些环境已经适合上传了,所以特此找了太没怎么使用过Git的Mac mini来看看能不能复现之前的问题,不出所料果然出现了之前的遇到的问题–如下图!(在此啰嗦下在实际遇到问题的途中最好养成截图保留问题的习惯,一来能记录问题所在二来也为能为之后的总结带来目的性。而不至于像我一样去复现问题 惭愧again again😂)

1> 首先CD到要上传的项目

2> 这里网上教程有两种一种是 执行git status 另一个是 git init 我两种都试了结果都报错

3> git add .

4> git commit -m “注释”

5> git remote add origin git@github.com:用户名/项目名.git

6> git push -f origin master

  • 结果

problem_1

执行git status

problem_2

执行 git init

1
2
3
4
5
6
7
8
9
10
都报了 
git@github.com: Permission denied (publickey).

fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.

根据图片还可以发行执行git status时还提供了一项有关 key 的验证。这一项其实就是整个项目上传的关键。

关键的问题就是没有权限的问题,本地的ssh key没有跟github上的对应所造成的。所以解决该问题的出发点也就从ssh key出发。

解决方法

1> cd 本地项目目录

2> git init

3> ssh-keygen -t rsa -C “github email”

1
2
3
4
5
6
7
会出现:
Enter file in which to save the key (/Users/apple001/.ssh/id_rsa): 填写路径

可以直接回车默认路径

我觉得这样比较合适:
Enter file in which to save the key (/Users/apple001/.ssh/id_rsa): /Users/apple001/.ssh/id_rsa_test //自定义要保存的目录名称用来区别之前的文件
  • 接下来的两次密码直接回车

solve_2

出现上图说明SSH key 创建完成

4> 可以执行 pbcopy < ~/.ssh/id_test_rsa.pub 直接复制 也可以执行 cd ~/.ssh 在执行 open . (有个点) 来打开文件所在文件夹 用文本工具来打开 .pub 文件进行复制。

5> 复制完成后进github -> 点右上角自己的头像 -> 点Settings —> 点SSH and GPG keys -> 点New SSH key -> 上方输入名称下方复制key就行了

6> 执行 ssh -T git@github.com

1
2
3
4
5
6
7
8
9
如果报 git@github.com: Permission denied (publickey).

执行 ssh-add ~/.ssh/id_rsa_test (不是.pub文件)

出现 Identity added: /Users/apple001/.ssh/id_rsa_test (github邮箱)

再次执行 ssh -T git@github.com

出现 Hi walkback! You've successfully authenticated, but GitHub does not provide shell access. 说明验证成功 但是还不具有访问的权限 执行第7步

7> 执行 git config –global user.name “github的昵称” 和 git config –global user.email “github邮箱”

1
执行第7步作者是没有出现任何的报错的,至此在执行之前的上传步骤就可以了

8> CD到要上传的项目 (如果之前是有cd ~/.ssh 的 记得CD回项目目录)

9> git status

3> git add .

4> git commit -m “注释”

5> git remote add origin git@github.com:用户名/项目名.git

6> git push -f origin master

solve

如果结果跟上图一样的话一般就没什么问题 可以刷新github看看应该是已经上传成功了

其实本人还出现过一个坑,就是当前用的电脑之前有使用过git而且被绑定过其他账号。执行到 git push -f origin master 后就报 Permission to xx/xx.git denied to xx.(应该是git默认使用了之前的账号来上传跟现在的账号的key又匹配不上就报这个)。这个问题简直快把我给逼疯了,结果不知怎么的被我给搞定了想想都搞笑😂。其实现在想想删除之前的 id_rsa 文件在创建新的应该就能解决。