强制 Git Pull 覆盖本地文件

Abdul Jabbar 2023年1月30日 2021年12月24日
  1. 保留本地更改
  2. 强制 Git Pull 覆盖本地文件
强制 Git Pull 覆盖本地文件

Git 对于新用户来说有点困难,如果你的首要任务之一是从 Git 远程仓库中执行某种拉取操作,那么我们将发现让 Git 覆盖一些本地文件的可行方法。

毫无疑问,Git 是管理团队工作的非常有效的工具。你需要了解一些重要的原则,才能巧妙地使用 Git。好消息是,当你正确学习它们时,你可能很少会遇到无法摆脱的问题。

我们使用本地仓库,这是一个在正常 Git 工作流程中具有一个或多个分支的远程仓库。仓库保存有关项目的所有记录,包括其整个历史和所有分支。分支是从空项目到当前状态的一组更改。

当你处理本地文件并引入新更改时,你需要将本地更改推送到远程仓库,并且在本地更改推送到远程仓库之前,你的机器上可以使用所有工作。当一个团队在做同样的事情并希望在同一个地方做出改变时,问题就开始了。

pull 基于多个操作,包括从远程分支获取数据,然后将其更改合并到本地仓库中。可以使用以下命令手动执行上述操作。

git fetch
git merge origin/$CURRENT_BRANCH

在处理 Git 仓库时,我们有两个主要选择。

保留本地更改

在这种情况下,当未提交的更改对你很重要时,有两种方法可以执行它们:

首先,你可以提交它们,然后应用 git pull

其次,你可以把它们藏起来。准确地说,stash 可以解释为我们进行了一次提交,但当时它在你当前的分支上是不可见的,但我们可以通过 Git 访问它。为了恢复保存的更改(我们确实使用了 stash),我们将使用命令 git stash pop。由于我们不再需要它,此命令将在放置隐藏的更改后删除存储提交。

git fetch (it will fetch the folder for the local machine)
git stash (it will stash the local changes)
git merge origin/$CURRENT_BRANCH (merge the changes from the local folder to workspace folder) 
git stash pop (it will do all stash to latest)

强制 Git Pull 覆盖本地文件

在这种情况下,你希望释放所有未提交的本地更改。有时,你只是为了实验而修改文件,但在那之后,你意识到你不希望进行这种更改。然后,你想要的只是将其更新到上游。

这将在此操作中在获取和合并之间增加一个步骤。因此,它会将分支重置为其原始状态,从而允许 git merge 工作。

git fetch (fetch the local machine folder)
git reset --hard HEAD (it will remove the local changes)
git merge origin/$CURRENT_BRANCH (merge the changes from the local folder to workspace folder)
Author: Abdul Jabbar
Abdul Jabbar avatar Abdul Jabbar avatar

Abdul is a software engineer with an architect background and a passion for full-stack web development with eight years of professional experience in analysis, design, development, implementation, performance tuning, and implementation of business applications.

LinkedIn

相关文章 - Git Pull