相关疑难解决方法(0)

如何强制"git pull"覆盖本地文件?

如何强制覆盖本地文件git pull

方案如下:

  • 团队成员正在修改我们正在处理的网站的模板
  • 他们正在向images目录添加一些图像(但忘记在源代码管理下添加它们)
  • 他们稍后通过邮件发送图像给我
  • 我在源控件下添加图像并将其与其他更改一起推送到GitHub
  • 他们无法从GitHub中提取更新,因为Git不想覆盖他们的文件.

这是我得到的错误:

错误:未经跟踪的工作树文件'public/images/icon.gif'将被合并覆盖

如何强制Git覆盖它们?这个人是设计师 - 通常我会手动解决所有冲突,因此服务器具有他们只需要在他们的计算机上更新的最新版本.

git version-control overwrite git-pull git-fetch

6654
推荐指数
46
解决办法
427万
查看次数

将本地存储库分支重置为远程存储库HEAD

如何将本地分支重置为远程存储库中的分支?

我做了:

git reset --hard HEAD
Run Code Online (Sandbox Code Playgroud)

但当我跑一个git status,

On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)
      modified:   java/com/mycompany/TestContacts.java
      modified:   java/com/mycompany/TestParser.java
Run Code Online (Sandbox Code Playgroud)

你能告诉我为什么我有这些'修改'?我没有碰过这些文件?如果我这样做,我想删除它们.

git undo

3488
推荐指数
22
解决办法
283万
查看次数

如何正确强制推送Git?

我已经设置了一个远程非裸"主"仓库并将其克隆到我的电脑上.我做了一些本地更改,更新了我的本地存储库,并将更改推送回我的远程仓库.到目前为止,情况还不错.

现在,我不得不改变远程仓库中的东西.然后我在当地的回购中改变了一些东西.我意识到不需要改变远程仓库.所以我尝试git push从我的本地仓库到我的远程仓库,但我收到的错误如下:

为防止您丢失历史记录,拒绝非快进更新在再次推送之前合并远程更改.有关git push --help详细信息,请参阅"关于快进的注意事项"部分.

我以为那可能是一个

git push --force
Run Code Online (Sandbox Code Playgroud)

将强制我的本地副本将更改推送到远程副本并使其相同.它确实强制更新,但当我回到远程仓库并进行提交时,我注意到文件包含过时的更改(主远程仓库以前有过).

正如我在评论中提到的其中一个答案:

[我]尝试强制,但当回到主服务器保存更改时,我得到过时的暂存.因此,当我提交存储库时不一样.当我再次尝试使用git push时,我得到了同样的错误.

我该如何解决这个问题?

git push git-push git-non-bare-repository

1206
推荐指数
11
解决办法
118万
查看次数

git pull类似于/反向git push -f?

有时候,尤其是 当我是唯一一个在远程存储库上工作的人时,我喜欢用git rebase -i和重写历史git push origin master -f.

如何在git pull origin master没有合并的情况下强制执行?我尝试了-f选项,但是没有用.我只想重写我本地git仓库的历史记录以匹配远程(原点)的历史记录.

git git-pull git-push git-fetch

38
推荐指数
2
解决办法
7415
查看次数

强迫git推后怎么拉?

假设我从git repo中提取更改.然后,回购力量的作者推向中央回购.现在我不能拉,因为历史被重写了.

假设作者强行推送正确版本,我怎样才能提取新提交(并放弃旧提交)?

我知道这是糟糕的git工作流程,但有时你无法避免这种情况.

git

27
推荐指数
1
解决办法
1万
查看次数

为什么我必须在更改提交消息后强制推送?

我读到有关如何修改提交消息的内容.接受的答案是:

如果您已经将提交推送到远程分支,那么您需要强制推送提交git push <remote> <branch> --force.

这是我的理解(也来自已接受的答案)git push --force将覆盖远程分支上的所有数据与本地数据.

为什么在更改提交消息后强制推送是必要的?如果我修改提交消息并试图在没有-f或者推送的情况下会发生什么--force

git push git-push

7
推荐指数
1
解决办法
4059
查看次数

为什么 git reset &amp; push 在 remote 和 branchname 之间使用斜杠与空格?

在强制推送或强制更新之后,通常使用git reset来复制分支的所有远程更改。例如在 rebase 和 force push 之后

git push --force origin my_branch
Run Code Online (Sandbox Code Playgroud)

您的团队成员可以使用

git reset --hard origin/my_branch
Run Code Online (Sandbox Code Playgroud)

获取更新的分支。现在的问题是,为什么你必须指定一个斜线/git reset,但不适合git push

git version-control github

5
推荐指数
1
解决办法
1316
查看次数