1

我有一个本地存储库,我在其中放置了一个文件“注释”,我在其中保留了一些关于我自己的观察和关注的文本。当我提交并推送到远程仓库时,我必须删除该文件。在我最初提交之前,我运行了git rm --cached notes,但这显然不起作用,因为在我推送之后,注释文件出现在 github 上。

所以我在本地所做的rm再次运行(这次它以某种方式工作)并执行一个
git commit --amend然后git show --stat --oneline HEAD我注意到注释已被删除。

但是现在为了推送,我必须将远程更改合并到我的本地仓库中,因为

更新被拒绝,因为您当前分支的尖端位于其远程分支的后面。

所以我运行了一个拉,但这也失败了:

冲突(修改/删除):在 HEAD 中删除并在 5bfdf 中修改的注释......

我需要做什么才能在本地和远程从该提交中简单地删除注释文件?

4

3 回答 3

1

当我提交并推送到远程仓库时,我必须删除文件

如果您不想提交文件但仍然能够在本地修改它,请使用

https://git-scm.com/docs/git-update-index

--assume-unchanged

git update-index --assume-unchanged <path>

如果您需要打印标有--assume-unchanged标志的文件列表:

git ls-files -v|grep '^h'

在此处输入图像描述


如何解决您的问题?

我需要做什么才能在本地和远程从该提交中简单地删除注释文件?

首先从服务器中提取任何更改,然后进行更改。

git pull origin <branch>
git add -A .
git rm --cached notes
git commit -m ...
git push origin <branch name>
于 2016-03-20T06:11:27.350 回答
0

当然还有我的朋友,看看这两个链接:

-一篇关于解决 git 冲突的文章。有一个特定的段落供您发行。

-关于同一问题的另一篇文章,提供了大量建议。

我自己的建议是要么获得一个合并工具,要么使用现有的 GIT 工具,这将使你的生活更轻松。

祝你好运

于 2016-03-20T06:10:29.360 回答
0
  1. 将笔记文件移动到临时位置。
  2. git pull. 这将从回购中提取笔记。
  3. git rm -f notes
  4. git commit
  5. git push

基本上目的是使本地和远程同步,然后删除“笔记”文件。

于 2016-03-20T06:12:09.447 回答