如何通过Git覆盖本地编辑文件并更新到最新提交?

时间:2018-07-06 13:08:22

标签: git gitlab

昨天,我的Git服务器已关闭,我需要对生产系统进行一些紧急更新,该系统通常从我的Git服务器上运行“ sudo git pull”以获取最新更改。

现在,我的Git服务器已重新启动并运行,我已经提交了对Git所做更改的修改版本,并希望将其拉到我的生产服务器上,但是,它告诉我:

<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/5.5.0/d3.js"></script>
<p>zoom and drag</p>
<div id="a">
<p></p>
</div>

<p>only zoom</p>
<div id="b">
<p></p>
</div>

我想用master分支的最新提交覆盖生产服务器上的文件。如何从生产服务器上做到这一点?

4 个答案:

答案 0 :(得分:0)

使用

git checkout .

放弃工作树中所有未进行的/未提交的修改。

此操作无法取消,请谨慎操作。


或者您可以使用

git stash

如果您放弃了重要的修改,则可以使用

将其放回原处。
git stash pop

或与他们见面

git stash show

答案 1 :(得分:0)

您可以使用:

cd /d

这将迫使git覆盖本地更改并检出master中的最新提交,请参见文档here

答案 2 :(得分:0)

如果您在生产服务器中不再需要更改,则有两种方法。

方法1:首选

git checkout . && git pull

方法2:并不是最好的方法,但是可以完成工作

git reset --hard && git pull

如果要将更改保留在生产服务器中,以备将来参考:

git stash && git pull

如果您在生产变更中添加了新文件/文件夹,则可能需要在使用上述任何一种方法之前运行git clean。

git clean -df

d-还删除未跟踪的目录

f-强制删除所有未跟踪的文件

答案 3 :(得分:0)

由于您是说它正在生产中,所以我建议您stash进行更改,而不要进行checkout

Stash有助于将更改保存到一边,您将能够再次将其取回。我总是喜欢用一个名字藏起来(作为说明)。

git stash save "<description>"

应用隐藏:

git stash apply stash@{0}

最好使用apply,因为不会删除隐藏项。

列出藏匿处:

git stash list