试图修改提交并推送到远程

时间:2016-03-20 05:36:16

标签: git merge amend

我有一个本地仓库,我在那里放了一个文件'注意'我在那里保留一些关于我自己的观察和关注的文字。当我提交并推送到远程仓库时,我必须删除该文件。在我最初进行提交之前,我运行了git rm --cached notes,但这显然不起作用,因为我推送笔记文件出现在github上。

所以我在本地做的就是再次运行rm(不知何故,这次运作)并且做了一个 git commit --amend然后git show --stat --oneline HEAD,我注意到笔记已被删除。

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

  

更新被拒绝,因为您当前分支的提示已落后    它的远程对手。

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

  

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

如果只是在本地和远程删除此提交中的备注文件,我需要做什么?

3 个答案:

答案 0 :(得分: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'

enter image description here

如何解决您的问题?

  

如果只是在本地和远程删除此提交中的备注文件,我需要做什么?

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

git pull origin <branch>
git add -A .
git rm --cached notes
git commit -m ...
git push origin <branch name>

答案 1 :(得分:0)

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

- An article关于解决git冲突。有一个特定段落供你发行。

- Another post关于大量建议的相同问题。

我自己的建议是获得合并工具或使用现有的GIT工具,这将使您的生活更轻松。

祝你好运

答案 2 :(得分:0)

  1. 将备注文件移至临时位置。
  2. git pull。这将从回购中提取笔记。
  3. git rm -f notes
  4. git commit
  5. git push
  6. 基本上目的是让本地和远程同步,然后删除“备注”文件。