some - git remote




![拒绝]管理员->管理员(先获取) (8)

pull总是正确的方法,但是当您尝试将非Git文件系统转换为Github存储库时,可能是一个例外。 在那里,您必须强制执行第一次提交。

git init
git add README.md
git add .
git commit -m "first commit"
git remote add origin https://github.com/userName/repoName.git
git push --force origin master

有没有很好的方法来解释如何在Git中解决“ ! [rejected] master -> master (fetch first)' ”的问题?

当我使用此命令 $ git push origin master 它显示一条错误消息。

! [rejected]        master -> master (fetch first)
error: failed to push some refs to '[email protected]:zapnaa/abcappp.git'

可能是其他人(例如,您的同事)已将提交提交到不在本地 master 分支中的 origin/master 上,并且您正尝试将一些提交从本地分支推送到服务器。 在99%的情况下,假设您不想从 origin 删除他们的作品,则有两种选择:

2)将其更改合并到您的本地分支中,然后推送合并的结果。 git checkout master git pull # resolve conflicts here git push

(请注意,在这种情况下, git pull 本质上只是 git fetchgit merge 。)

1)重新设置本地分支机构的基础,以便看起来您的同事先进行了提交,然后又进行了提交。 这样可以使提交历史记录保持良好的线性关系,并避免“合并提交”。 但是,如果您与同事的更改存在冲突,则在最坏的情况下,您可能必须为每次提交(而不是一次)解决这些冲突。 从本质上讲,这对其他所有人都更好,但对您来说却需要更多的精力。 git pull --rebase # resolve conflicts here git push

(请注意, git pull --rebase 本质上是 git fetchgit rebase origin/master 。)


您可以使用以下命令:首先使用--mirror标志克隆存储库的新副本:

$ git clone --mirror git://example.com/some-big-repo.git

然后相应地遵循以下代码:

使用命令行将现有项目添加到GitHub

即使那行不通,您也可以简单地编写以下代码:

$ git push origin master --force 

要么

$ git push origin master -f

您应该使用 git pull ,该命令执行 git fetch ,然后执行 git merge

如果使用 git push origin master --force 命令,将来可能会遇到问题。


有时,当您复制文件时通常会出现自述文件的情况。


答案就在那里,git告诉您先获取。

可能其他人已经推动精通,而您的承诺落伍了。 因此,您必须获取,合并变更集,然后才能再次推送。

如果不这样做(或者更糟的是,如果使用 --force 选项来强制它),则可能会弄乱提交历史记录。

编辑:关于最后一点,我会做得更详细,因为这里的一个人刚刚给了使用 --force 选项的非常不好的建议。

由于git是DVCS,因此理想情况下,许多其他开发人员正在使用相同的存储库(或其中的一个分支)来与您进行同一个项目。 如果用更改集强行覆盖,则存储库将与其他人的存储库不匹配,因为“您重写了历史记录”。 您将使其他人不满意,并且存储库将遭受损失。 也许世界上的小猫也会哭。

TL; DR

  1. 如果要解决,请先获取(然后合并)。
  2. 如果要破解,请使用 --force 选项。

不过,您要求的是前者。 坚持1),即使您总是自己使用git,也要始终这样做,因为这是一种好习惯。


这对我有用:

$ git add .
$ git commit -m "commit"
$ git push origin master --force

这项工作对我来说

  1. git初始化

  2. git添加--all

3.git commit -m“名称”

4. git push origin master --force





git-push