GIT:回到旧提交并与master合并

时间:2010-02-26 18:46:52

标签: git merge

给定一个包含2个文件的项目:fileAfileB。两者都被添加到git-repository中。然后我将fileA添加到.gitignore(并刷新了git-cache),以便在当前主服务器中只存在fileB。我想现在将此存储库克隆到另一台机器,但缺少fileA。

我接下来要做的是从提交中创建一个分支,其中存在两个文件。现在最大的问题是:如何在不丢失该文件的情况下返回主提交?

对不起标题。我试图描述,但是......

2 个答案:

答案 0 :(得分:3)

如果您只需要恢复一个文件,则可以使用git checkout

执行此操作
$ git checkout <revision_where_fileA_exists> fileA
$ git add fileA
$ git commit -m "Restored fileA"

您还必须修改.gitignore,以便不再忽略fileA

答案 1 :(得分:3)

我认为Josh的回答可能就是你想要的这种情况,但是如果你再次遇到,你有几个选择...经典的合并或拉动将始终有效,你只需要指定-f如果你是试图取消删除您祖先中的文件。否则,git会抱怨。

$ git checkout master
$ git pull -f . <branch>:master

如果您只删除文件,该命令应自动提交您的更改。您还可以浏览以下命令以获得更多还原特定功能:

$ git reset 
$ git revert

如果您想要退出的小变更不需要污染日志,那么确实会使用重置,但它非常强大,请查看文档。

Revert用于撤消过去发生的事情。更像是“退出”改变。