今晚在推送项目的时候遇到了Git推送失败:HttpRequestException



推送失败有可能不是项目本身的问题,因为本地开启服务器能正常跑起来,提示说是用户名找不到,原因是这是我查到的资料
可以从下载并重新安装Git的最新源代码版本。我自己是windows,所以下载适用于Windows的Git的最新(2.16.2)。这是最近维护的版本。它于18日前在2018-02-20发布,会同时更新Git Credential Manager。
下载安装完成之后(步骤无脑next也可以)
查看是否更新成功:

1
2
//查看Git版本的命令
git --version

“查看结果”
“查看结果”

这样git版本就更新完成了

远程免密推送

因为远程的代码管理是基于SSH的,Git则需要配置SSH。
1 、设置Git的user name和email

1
2
$ git config --global user.name "xxxx"  //这里是用户名
$ git config --global user.email "xx@xxx" //这里是邮箱

2、配置SSH密钥:
1)查看是否生成过ssh秘钥,路径是c盘下面的.ssh文件夹(没有说明没生成过秘钥),有的话备份再删除因为一会会生成新的
2)生成密钥:

1
$ ssh-keygen -t rsa -C “xxx@xx”

按回车,得到id_rsa和id_rsa.pub(这两文件是生成在.ssh里头的)
4)登录github添加“id_rsa.pub”里面的公钥。
5)测试:ssh git@github.com
到这里如果成功的话,下次再次提交文件就可以免密提交了

git常用的一些命令

基础命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
git init初始化

git add添加到暂存区,多个文件用,隔开,全部文件.

git diff 查看未缓存的详细状态(本地仓库代码变化)
git diff --cached查看暂存区的详细状态(暂存区里面的变化)
git diff HEAD显示摘要信息
git diff --stat显示摘要而非整个diff

git commit -m "注释" 提交到仓库(只提交暂存区)
git commit -am "注释" 新增并提交到仓库(无论有没有在暂存区,都提交)

git reset HEAD取消已缓存的内容(取消之前的git add 添加,如果commit过的话就只能回滚了)

git rm删除

git mv重命名

git branch 浏览仓库的所有分支
git branch bug新建名为bug的分支
git branch -d branchname 删除分支

git checkout切换分支(切换至master之外的分支之后可以选择增加文件提交,然后再切换回master分支进行合并)
虽然同一个目录下,但是git分支不一样,显示的文件也不一样


git merge合并分支(一般是分支合并到主分支,git checkout master,然后git merge 分支名)

git log提交日志
git log --online分行显示简要信息

git tag -a v1.0编辑模式输入版本的说明信息,:wq保存退出
git log --online -decorate --graph查看标签信息
git tag查看历史版本

克隆之前首先要选择克隆文件的位置(cd)

  clone已有仓库
  git clone git@github.com:XXX/yyyy.git //XXX为github的用户名,yyy为仓库名

在对应的文件夹中添加新有项

  git status
  4、提交
  git add mmm.sss //mmm为文件名称,sss为文件拓展名(常用git add .)
  git commit -m “hhh” //hhh为git commit 提交信息,是对这个提交的概述

  git log//用于查看提交日志
  git push //更新GitHub上的仓库

用git创建仓库

  mkdir nnn //仓库名

  cd hhh

  git init //初始化仓库

  git status //查看仓库状态

  touch README.md //创建READEME.md文件

  git add ERADME.md //添加ERADME.md至暂存区

  git commit -m “hhh” //如果想要提交信息记录的更详细,请不要加 -m

  git log –pretty=short //加–pretty=short 只显示提交信息的第一行

  git log ggg //ggg是指指定的文件或目录,用于查看指定的目录、文件的日志

  git log -p //查看提交所带来的改动

  git log -p ggg //查看指定文件的改动

  git diff //可以查看工作树,暂存区,最新提交之间的差别

  git diff HEAD //查看工作树与最新提交的差别

分支操作

  git branch //显示分支一览表,同时确认当前所在的分支

  git checkout -b aaa //创建名为aaa的分支,并且切换到aaa分支
  (git branch aaa //创建名为aaa的分支
  git checkout aaa // 切换到aaa分支
  )能和git branch -b aaa 得到同样的效果

  git checkout - //切换到上一分支

合并分支

  git checkout master //切换到master分支

  git merge –no–ff aaa // 加–no–ff 参数可以在历史记录中明确地记录本次分支的合并

  git log –graph //以图表形式查看分支

更改提交的操作

  git reset //回溯历史版本

  git reset –hard //回溯到指定状态,只要提供目标时间点的哈希值

推进历史

  git reflog //查看仓库的操作日志,找到要推历史的哈希值

  git checkout master

  git reset –hrad ddd //ddd为要推进历史的哈希值

修改提交信息 git commit –amend

  压缩历史 git rebase -i 错字漏字等失误称作typo

  根据以前的步骤在GitHub上创建仓库,应于本地的仓库名相同 GitHub上面创建的仓库的路径为git@github.com: 用户名/仓库名.git

  git remote add eee git@github.com: 用户名/仓库名.git //添加远程仓库,并将git@github.com: 用户名/仓库名.git远程仓库的名称改为eee

  git push -u eee master //推送至远程仓库 master分支下 -u 参数可以在推送的同时,将eee仓库的master分支设置为本地仓库的当前分支的的upstream(上游)。添加这个参数,将来运行git pull命令从远程仓库获取内容时,本地仓库的这个分支就可以直接从eee的master
分支中获取内容

  git checkout -b feature d eee/feature d //获取远程的feature d分支到本地仓库,-b参数后面是本地仓库中新建的仓库的名称

  git pull eee feature d //将本地的feature d分支更新为最新状态

  在GitHub上面查看两个分支之间的差别,只需要在地址栏中输入http://github.com/用户名/仓库名/分支1...分支2

查看master分支在最近七天内的差别

  http://github.com/用户名/仓库名/master@{7.day.ago}...master (同样,day,week,month,year都是可以哒)

查看与指定日期之间的差别

  http://github.com/用户名/仓库名/master@{xxxx-xx-xx}...master (xxxx-xx-xx代表年月日)