拉可以擦除工作目录中的所有更改吗?

时间:2016-01-23 18:40:13

标签: git

git的新手(通过我的新工作)并被指示"只需在提交之前执行拉,我就这样做了。令我惊讶的是,我工作目录中的所有更改都消失了。

  • 这是怎么发生的?
  • 这些文件在哪里?
  • 有办法吗? 恢复它们?

感谢。

2 个答案:

答案 0 :(得分:6)

在提交任何有效更改之前永远不要拉。这将消除您的所有更改。

要保留你的代码,你必须提交,然后拉,然后最后推送。

请按照以下步骤进行操作 -

将您的文件添加到提交 -

git add <filename>

使用提交消息提交这些文件 -

git commit -m "added blah feature"

然后,拉(最好是rebase)从repo获取最新的代码 -

git pull --rebase

然后推(YAY!) -

git push -u origin master

关于他们的意思(看看你讲过的Jenkins CI) -

首先从repo到你的本地目录拉代码(也可能是硬复位,有时也是如此)。然后,如果您有一个单独的分支或不同的本地工作目录,请从那里进行更改到这个新位置(拉),然后提交您的更改。然后最后推。

希望它有所帮助:)快乐的编码!

答案 1 :(得分:5)

命令git pull实际上是git fetchgit merge的别名。无论是谁教导你的人都可能做得不好,因为git pull在你犯罪之前就会消灭你所有的工作。他们应该告诉你做的是提交,然后 git pull,或者如果你不想要合并历史,请使用git pull --rebase。之后你可以git push

不幸的是,如果被git pull发起的合并覆盖,我无法相信有任何方法可以取回您未承诺的工作。

此外,作为一个非超级相关的友情提醒,请确保每次开始处理新提交之前,git pull以获得其他任何人一直在进行的提交。