GIT使用总结

git使用push提交到远程仓库出现 The requested URL returned error: 403

问题描述:新建了一个新github帐号,本地建立好项目之后,使用命令:$ git push -u origin master时出现以下错误

1
2
remote: Permission to userName/repositorieName.git denied to clxering.
fatal: unable to access 'https://github.com/userName/repositorieName.git/': The requested URL returned error: 403

原因是系统保存了原来的账号信息,使用新账号时,信息不一致。
解决方法:在cmd中输入rundll32.exe keymgr.dll,KRShowKeyMgr,然后删除github相关内容的配置。

Linux系统向github提交代码是老要输入用户名密码

解决方案:

1
2
3
4
5
6
7
8
9
10
输入: git config --global credential.helper store
这一步会在用户目录下的.gitconfig文件最后添加:
[credential]
helper = store

之后输入的账户和密码信息会被记录

git config --global user.email "alice@aol.com" 操作的是email
git config --global push.default matching 操作的就是push段中的default字段
git config --global credential.helper store 操作的是最后一行的值

github上向开源项目提交代码

首先将该项目fork到自己的账户上

image

将代码clone到本地

1
git clone https://github.com/pkulijiawei/ceph.git

创建一个bug的分支,并到该分支上

1
2
git brancj issue-44012
git checkout issue-44012

修改代码后提交

1
2
3
4
5
6
7
git add -A #修改代码放入缓存区

git commit -s -m "test 3" #提交代码到本地库

git push origin issue-44012 #推送本地库代码到远程库

git log #查看提交日志

有时候我们执行 git push 将一个 new branch 推送到远程仓库的时候,会被远程仓库阻止。

可能是我们没有相应的权限吧。然而,我在 git push 的时候加上 –no-thin 参数,就可以将其推送上去了。

1
git push --no-thin origin issue-44013

提交代码

登陆到自己的github账号,找到相应工程,点击进入,创建new pull request,选择要提交的分支,编辑提交说明后提交代码,
等待review完成并merge到master分支后,就完成了一次开源代码贡献。

image

更新提交信息

一、如果已经push到远端服务器,想修改已经提交过的commit信息

1
2
3
4
# git commit --amend  
修改commit 信息
# git push --no-thin origin HEAD:refs/for/master
重新提交gerrit审批

二、如果已经push到远端服务器,有漏掉的test.txt文件想提交到上一次的commit信息

1
2
3
4
5
6
7
8
1.添加test.txt  
# git add test.txt
2.修改commit信息;保存:Ctrl + o; 回车 ;退出:Ctrl + x
# git commit --amend
3.重新push到远端服务器
git push --no-thin origin HEAD:refs/for/master
强制推送
git push -f