Git - 新结账

时间:2012-09-13 07:12:43

标签: git github

这可能是一个非常简单的问题,但我对Git来说是全新的......

  1. 我已经完成了我的主分支。
  2. 另一个人对主分支做了很多更改。
  3. 我想丢弃所有更改,因此我在本地删除了项目(刚从Windows资源管理器中删除),然后运行git pull myremote master。
  4. 我现在知道为什么这不起作用。它最终只是从主分支中删除了已更改的文件。如果我现在运行git status,我会将所有其他文件视为已删除的文件。不好!!

    所以,我想做的是获得主分支的干净副本或结账(或所谓的),就好像这是我第一次从主分支中提取项目一样。重置本地Git存储库还是什么?

    我该如何处理?

3 个答案:

答案 0 :(得分:1)

尝试这样做以取消您的更改:

git checkout .

和/或:

git reset HEAD --hard

然后从主人拉

编辑:

此外,如果您执行git status并看到文件已删除,您可以执行git add -u暂存这些删除并提交确认。

答案 1 :(得分:1)

要将本地树(您可以实际编辑的文件)重置为您可以执行的服务器(远程)上主服务器的确切状态(假设服务器的远程名称是来源):

git reset origin/master --hard 
git clean -fd

第一个命令会将当前已签出的本地分支的HEAD(git status的第一行是:On branch $current_branch)重置为服务器主服务器的状态(表示$ current_branch和来源的git日志) / master将完全相同)。第二个命令将删除可能遗留的无关文件。

我建议使用

git checkout -b wip

之前创建一个名为wip的分支,以防您想要保留直接在本地主服务器上完成的一些本地未压缩提交。然后你可以根据需要合并wip或者挑选一些提交。

建议的命令

git reset HEAD --hard

将本地树重置为本地分支的头部提交所记录的状态,但本地分支的历史记录仍可能与远程分支的历史记录不同。它将清除您在本地执行的任何修改,并且不会丢失您尚未推送的任何提交。

答案 2 :(得分:0)

我最终创建了一个新文件夹,浏览到此文件夹并在此文件夹中运行'git init'。然后我在这个文件夹中创建了一个指向我的项目的新遥控器,然后我用'git pull myremote master'拉出了项目。然后我删除了导致我问题的上一个文件夹。 这很简单: - )。