Git Error: failed to push some refs to ‘git@github.com:**.git’

操作环境

操作系统:Windows 10 家庭中文版 64位
Git 客户端:mintty 2.9.0 (x86_64-pc-msys)
Git version: 2.19.0.windows.1
Git 仓库:github.com

报错说明

今天 Push 代码的时候遇到一个报错:

! [rejected]        master -> master (fetch first)
error: failed to push some refs to 'git@github.com:somebodyblog/somebodyblog.git'

报错截图如下:

图 1 报错截图
图 1 报错截图

解决方案

出现这样的报错一般是因为本地仓库分支的代码和远程仓库分支的代码不一致了。需要先拉取(fetch)远程分支的代码并在本地对两个分支的代码进行合并(merge / rebase)后才能继续向远程仓库分支 push 代码。
合并代码:

git pull --rebase origin master

代码解释:

  • git pull –rebase = git fetch + git rebase

推送代码:

git push

至此,问题解决。

在 VirtualBox 中为 BlackArch Linux 设置共享文件夹

操作环境

虚拟化软件:VirtualBox 5.2.22 r126460 (Qt5.6.2)

物理机操作系统:Windows 10 家庭版 64位

虚拟机操作系统:blackarch-linux-2018.08.01

操作过程

在物理机上新建一个文件夹,打开”设备/共享文件夹”,添加一个共享文件夹并设置为“自动挂载”,如图:

图 1 添加共享文件夹
图 1 添加共享文件夹

之后重启虚拟机系统。

在虚拟机系统的/media/sf_share 目录下可以看到共享文件夹中的内容:

图 2 在虚拟机系统中查看共享文件夹中的文件
图 2 在虚拟机系统中查看共享文件夹中的文件

解决在已配置SSH秘钥的情况下push代码到远程仓库时仍需要输入用户名和密码的问题

出现该问题的原因就是本地仓库与远程仓库进行连接使用的是HTTPS而不是SSH,因此,即使部署了SSH公钥仍然需要在push代码的时候输入用户名和密码.

继续阅读“解决在已配置SSH秘钥的情况下push代码到远程仓库时仍需要输入用户名和密码的问题”

Windows上使用Git托管代码到Coding

作者:荒原之梦

Git简介:

Git是一款分布式版本控制系统,可用于项目的版本管理。Git可以管理本地代码仓库与远程代码仓库间的连接以及进行版本控制,使得我们可以在本地离线进行修改等操作,之后再将代码提交到远程代码仓库,方便团队协作。

Git官网:

https://git-scm.com/

Git百度百科:

https://baike.baidu.com/item/GIT/12647237?fr=aladdin

Git Github主页:

https://github.com/git

在使用Git与远程仓库进行代码交互的时候会遇到一些操作动作,如“克隆”、“推送”和“拉取”等,这些动作的英文名称以及对应的含义如下:

名称
功能
Clone(克隆)将远程仓库里面的代码复制一份到本地
Push(推送)将代码推送到远程仓库中
Fetch(获取)获取远程仓库中发生变化的代码
Merge(合并)将远程仓库中发生变化的代码与本地存储的没有发生变化的代码合并以使本地仓库和远程仓库代码保持一致
Pull(拉取)功能等同于“fetch+merge”
Commit(提交)将修改推送到本地仓库中
Fork将代码从别人的远程仓库复制到自己的远程仓库
Pull request将自己远程仓库中的代码复制一份到别人的远程仓库(该操作将会询问对方是否接受)

如果要将修改Push到别人的远程仓库,必须首先Fork别人的代码到自己的远程仓库,修改完再Push. 而不能直接Clone别人的代码到本地,这样再想Push到别人的远程仓库是不行的。另外,经实践发现,直接Clone自己的远程仓库到本地再Push到自己的远程仓库也是不行的。

具体步骤如下:

1 下载并安装Git

如无自定义需要,使用默认配置安装即可。

2 在Coding上添加一个项目

在荒原之梦网(zhaokaifeng.com)的这篇文章 使用Coding Pages托管网站中有在 Coding 上添加一个项目的介绍,可以参考。

3 配置SSH

生成SSH公钥,输入:

ssh-keygen -t rsa -C XXX@XXX.XXX

XXX@XXX.XXX 为注册Coding时使用的邮箱。

之后会提示输入用于保存公钥的文件:

Enter file in which to save the key (/c/Users/Master/.ssh/id_rsa):

这里直接回车,使用默认的文件id_rsa 保存即可。

接下来会提示:

Enter passphrase (empty for no passphrase):

这里是提示我们是否要为提交代码的操作设置密码。 如果设置密码则在提交项目时就需要使用密码。回车表示密码为空,即不设置密码。

之后提示:

Enter same passphrase again:

再次回车或输入刚才设置的密码。

之后会看到公钥成功创建的提示:

Your public key has been saved in /c/Users/Master/.ssh/id_rsa.pub.

查看公钥,输入:

cat /c/Users/Master/.ssh/id_rsa.pub

将公钥复制下来,登陆Coding,在我的账户->SSH公钥 处粘贴刚才生成的公钥,之后点击添加 。

如果粘贴后公钥末尾有空白行或空格要删掉它们。

4 创建本地代码仓库并Clone远程代码仓库

在本地新建一个文件夹A。

 “A”为远程仓库的仓库名

进入A,右键点击Git Bash Here .

初始化仓库,输入:

git init

之后会在A里面产生一个.git 隐藏文件夹。

Clone远程仓库(远程仓库中没有代码也可以这样执行),在本地仓库中输入:

git clone A https://git.coding.net/XXXXXX.git

“A”为远程仓库的仓库名

其中https://git.coding.net/XXXXXX.git  为远程仓库的HTTPS地址,可以在项目的代码 标签处找到:

Windows上使用Git托管代码到Coding | 荒原之梦
图 1

之后会弹出登录凭证验证窗口:

Windows上使用Git托管代码到Coding | 荒原之梦
图 2

输入Coding的用户名(一般为邮箱)和登陆密码点击确定 即可。

如果远程仓库里面有代码,Clone执行完毕后我们就可以在本地看到远程仓库中的代码了。

5 将本地代码仓库的更改推送到远程代码仓库

现在假设我们在本地代码仓库新建了一个文件1.txt . 下面演示如何将这个更改推送到远程代码仓库:

进入本地代码仓库中,查看代码状态,输入:

git status

这时Git会用红色字体显示1.txt ,说明这个文件是和远程仓库中的内容不一致的。

将所有更改都加入到暂存区域,准备上传:

git add .

也可以使用

git add 文件名

指定加入到暂存区域的文件。

但是当我们输入:

git commit

准备提交代码时,回车却出现了下面的警示信息:

*** Please tell me who you are.

Run

git config --global user.email "you@example.com"

git config --global user.name "Your Name"

to set your account's default identity.

Omit --global to set the identity only in this repository.

根据上述提示,输入:

git config --global user.email "you@example.com"

回车。

输入:

git config --global user.name "Your Name"

回车。

再次执行:

git commit

这次没有出现错误提示,而是打开了一个文本。按下i 开始输入所提交代码的备注,之后保存并退出。

之后输入:

git push origin master

这时我们在浏览器上再刷新Coding账号中的该项目就可以看到刚才推送过来的1.txt 文件了。

输入:

git status

会看到:

nothing to commit, working directory clean

至此,本地更改已经全部推送到远程仓库。


荒原之梦网全部内容均为原创,提供了涵盖考研数学基础知识、考研数学真题、考研数学练习题和计算机科学等方面,大量精心研发的学习资源。

豫 ICP 备 17023611 号-1 | 公网安备 - 荒原之梦 豫公网安备 41142502000132 号 | SiteMap
Copyright © 2017-2024 ZhaoKaifeng.com 版权所有 All Rights Reserved.

Copyright © 2024   zhaokaifeng.com   All Rights Reserved.
豫ICP备17023611号-1
 豫公网安备41142502000132号

荒原之梦 自豪地采用WordPress