重新运行git add

时间:2011-08-24 14:57:28

标签: git

我刚刚开始在新存储库中索引文件。我跑git add .并添加了所有文件。推完它们后,我注意到一个钩子没有工作。我想再次git add .再次推送相同的文件。但显然git add .没有添加任何新内容。将索引重置为空的正确方法是什么,以便再次添加所有内容?

6 个答案:

答案 0 :(得分:3)

如果您的目标是重新运行git post-commit hook,只需添加一些小提交(在README中更新缩进或其他内容)并再次推送到repo。

答案 1 :(得分:2)

您可以简单地强制推送上一次提交(如果它不是根提交):

git push origin +master^:master

这会将远程存储库中的master移回一次(+用于允许非快进更新)。这将使用您之前的提交运行您的提交钩子;如果您不希望在此操作期间禁用挂钩。

现在,只需再次推送提交,它应该在不工作时使用相同的更改集再次运行您的提交挂钩(在add .之后):

git push origin master

答案 2 :(得分:1)

您可以使用git reset HEAD~将当前头重置为上一次提交,然后重新添加文件并提交。

这将导致您的分支偏离远程;然后,您需要git push -f用您的新分支覆盖远程分支。

答案 3 :(得分:0)

执行git add时,文件会添加到git跟踪中。当您可以再次修改并提交它们(然后推送)时,无需重新添加这些文件。如果您希望重新添加,理论上可以git rm将它们放回仓库中,进行更改然后再次执行添加。您还可以将repo重置为先前的提交,但这两个似乎都是不必要的。

答案 4 :(得分:0)

你可以在下面复制你正在做的事情(我这样说是因为提交可能依赖于添加的文件等,所以对另一个文件进行简单的更改并推送可能不起作用):

git reset HEAD~
git add .
git commit -m "message"
git push -f origin master

答案 5 :(得分:-1)

这是一个简单易懂的解决方案:

  1. 修改您之前的提交 git commit --amend

  2. 用力推动它 git push -f