为什么我能';设置遥控器后,是否不在GitHub Repository上推送代码?
我不太喜欢GIT,我有以下问题:我在GitHub上创建了一个新的存储库。然后,在我的项目文件夹中,我执行了以下命令: 1) 我将init存储库设置到我的项目文件夹中:为什么我能';设置遥控器后,是否不在GitHub Repository上推送代码?,git,github,Git,Github,我不太喜欢GIT,我有以下问题:我在GitHub上创建了一个新的存储库。然后,在我的项目文件夹中,我执行了以下命令: 1) 我将init存储库设置到我的项目文件夹中: git init 2) 我设置了对GitHub存储库的引用: git remote add origin https://github.com/AndreaNobili/SpringBoot-Excel-API.git 检索参考信息时,我得到以下信息: developer@developer-virtual-machine:~
git init
2) 我设置了对GitHub存储库的引用:
git remote add origin https://github.com/AndreaNobili/SpringBoot-Excel-API.git
检索参考信息时,我得到以下信息:
developer@developer-virtual-machine:~/git/SOC-dashboard$ git remote -v
origin https://github.com/AndreaNobili/SpringBoot-Excel-API.git (fetch)
origin https://github.com/AndreaNobili/SpringBoot-Excel-API.git (push)
所以看起来不错
3) 首先,我尝试推送我的项目代码:
developer@developer-virtual-machine:~/git/SOC-dashboard$ git push origin master
Username for 'https://github.com': nobili.andrea@gmail.com
Password for 'https://my.mail@gmail.com@github.com':
To https://github.com/AndreaNobili/SpringBoot-Excel-API.git
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'https://github.com/AndreaNobili/SpringBoot-Excel-API.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
我插入了凭据,但收到了上一条错误消息。到底是什么意思
4) 我的想法是,在将代码推入GitHub存储库之前,我必须对远程存储库执行拉取操作(我看到有.gitignore文件)
所以我试着做:
developer@developer-virtual-machine:~/git/SOC-dashboard$ git pull
There is no tracking information for the current branch.
Please specify which branch you want to merge with.
See git-pull(1) for details.
git pull <remote> <branch>
If you wish to set tracking information for this branch you can do so with:
git branch --set-upstream-to=origin/<branch> master
那么,出了什么问题?我遗漏了什么?我如何才能尝试修复它并正确地推送我的代码?tl;dr当您在Github上进行回购时,它已经有一个提交要添加。gitignore。git init
+git remote add
没有获取此提交或任何提交,您有一个空白的本地存储库。您的本地提交是不是建立在远程提交之上的,它们并没有共同的祖先,它们是“不相关的”。Git不会合并不相关的分支
要修复它,git fetch origin
确保您拥有远程的最新快照,以及git rebase origin/master
在源的主分支上重写本地提交。然后您可以推送
$ git pull
origin
A - B - C - F - G
\ \
D - E - M [master]
local
A - B - C - F - G [origin/master]
\ \
D - E - M [master]
将来,使用git clone
下载一个新的存储库
所有信息都在那里,但有点神秘。重要的是:
! [rejected] master -> master (non-fast-forward)
“快速前进”是指更新分支时不需要合并
例如,您克隆了一个具有三个提交(a、B和C)的存储库。此时您将获得该存储库的完整副本
$ git clone <some repo>
origin
A - B - C [master]
local
A - B - C [master]
[origin/master]
你推。这个推可以发生,因为Git只需要将D和E叠加在E的上面。这是一个“快速前进”
当您的历史记录发生分歧时,就会出现问题。在您进行更改后,当其他人提交到远程存储库时,就会出现这种情况 让我们回到一个新的克隆
$ git clone <some repo>
origin
A - B - C [master]
local
A - B - C [master]
其他人推送了一些提交
origin
A - B - C - F - G [master]
local
A - B - C [origin/master]
\
D - E [master]
$ git init
$ git remote add origin https://github.com/AndreaNobili/SpringBoot-Excel-API.git
origin
A [master]
local
B - C [master]
如果您尝试推送,您将获得![rejected]master->master(非快进)
。您的历史记录已发生分歧,需要合并。git push
不会这样做,您必须git pull
并处理任何冲突
$ git pull
origin
A - B - C - F - G [master]
local
A - B - C - F - G [origin/master]
\ \
D - E - M [master]
现在你可以推了
$ git pull
origin
A - B - C - F - G
\ \
D - E - M [master]
local
A - B - C - F - G [origin/master]
\ \
D - E - M [master]
那么,是谁做出了这种不同的改变呢?是你。当你在Github上创建存储库时,它做出了改变 如果你克隆了存储库,你会很好,就像上面所说的。但是你初始化并添加了一个远程存储库
$ git init
$ git remote add origin https://github.com/AndreaNobili/SpringBoot-Excel-API.git
origin
A [master]
local
origin有一个提交,但您的本地存储库没有。Git不会在没有您明确告知的情况下与远程设备通信。此时您必须Git pull
。或者改为Git clone
现在您添加了更多提交
origin
A - B - C - F - G [master]
local
A - B - C [origin/master]
\
D - E [master]
$ git init
$ git remote add origin https://github.com/AndreaNobili/SpringBoot-Excel-API.git
origin
A [master]
local
B - C [master]
请注意,您在源站上的提交与本地提交之间没有关系。它们没有共同的提交。它们是“不相关的”
您尝试推送并获取![rejected]master->master(非快进)
,因为历史已经偏离
您试图拉取并获取致命:拒绝合并不相关的历史记录
,因为您的本地提交和源上的提交是不相关的。Git不知道如何合并它们
要解决此问题,请首先从源获取最新的更改
$ git fetch origin
origin
A [master]
local
B - C [master]
A [origin/master] # the unrelated commit fetched from origin
然后,rebase
将您的更改置于它们之上。rebase
基本上将您的更改复制到一个不相关的提交上
$ git rebase origin/master
origin
A [master]
local
A [origin/master]
\
B1 - C1 [master]
现在你可以推了
$ git pull
origin
A - B - C - F - G
\ \
D - E - M [master]
local
A - B - C - F - G [origin/master]
\ \
D - E - M [master]
(您也可以一步完成fetch+rebase:git pull--rebase origin master
。git pull是fetch+A merge,或者使用--rebase A rebase。)
将来,下载一个带有git clone
tl;dr的新存储库,当您在Github上进行repo时,它已经有一个提交要添加。gitignore。git init
+git remote add
没有获取此提交或任何提交,您有一个空白的本地存储库。您的本地提交不是建立在远程提交,它们没有共同的祖先,它们是“不相关的”。Git不会合并不相关的分支
要修复它,git fetch origin
确保您拥有远程的最新快照,以及git rebase origin/master
在源的主分支上重写本地提交。然后您可以推送
$ git pull
origin
A - B - C - F - G
\ \
D - E - M [master]
local
A - B - C - F - G [origin/master]
\ \
D - E - M [master]
将来,使用git clone
下载一个新的存储库
所有信息都在那里,但有点神秘。重要的是:
! [rejected] master -> master (non-fast-forward)
“快速前进”是指更新分支时不需要合并
例如,您克隆了一个具有三个提交(a、B和C)的存储库。此时您将获得该存储库的完整副本
$ git clone <some repo>
origin
A - B - C [master]
local
A - B - C [master]
[origin/master]
你推。这个推可以发生,因为Git只需要将D和E叠加在E的上面。这是一个“快速前进”
当您的历史记录发生分歧时,就会出现问题。在您进行更改后,当其他人提交到远程存储库时,就会出现这种情况 让我们回到一个新的克隆
$ git clone <some repo>
origin
A - B - C [master]
local
A - B - C [master]
其他人推送了一些提交
origin
A - B - C - F - G [master]
local
A - B - C [origin/master]
\
D - E [master]
$ git init
$ git remote add origin https://github.com/AndreaNobili/SpringBoot-Excel-API.git
origin
A [master]
local
B - C [master]
如果您尝试推送,您将获得![rejected]master->master(非快进)
。您的历史记录已发生分歧,需要合并。git push
不会这样做,您必须git pull
并处理任何冲突
$ git pull
origin
A - B - C - F - G [master]
local
A - B - C - F - G [origin/master]
\ \
D - E - M [master]
现在你可以推了
$ git pull
origin
A - B - C - F - G
\ \
D - E - M [master]
local
A - B - C - F - G [origin/master]
\ \
D - E - M [master]
那么,是谁做出了这种不同的改变呢?是你。当你在Github上创建存储库时,它做出了改变 如果你克隆了存储库,你会很好,就像上面所说的。但是你初始化并添加了一个远程存储库
$ git init
$ git remote add origin https://github.com/AndreaNobili/SpringBoot-Excel-API.git
origin
A [master]
local
origin有提交,但您的本地存储库没有提交。