今晚在推送项目的时候遇到了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和email1
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
34git 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代表年月日)