git - 通过拉取更改来解决冲突?
git - resolving conflict by taking changes from pull?
我正在用 git pull
更新我的代码,但在一个文件中出现提交冲突。我想从 pull
中进行更改并覆盖在本地回购中所做的事情。是否有一些命令可以简单地从 pull
中获取更改并覆盖本地更改?
还是需要手动编辑这样的file/files?..
试试这个:
git fetch --all
git reset --hard origin/master
P.S.: 可能口是心非:
Force Git to overwrite local files on pull
据我了解你的情况:
- 您在具有远程的分支上进行了本地更改。
- 您在尝试将远程的更改拉入本地分支时遇到文件冲突。
- 您希望覆盖本地分支上的更改以匹配远程分支中的更改。
简单地说,可行,但您最好解决您的冲突,以防丢掉工作。
我们不能为此使用 git pull
,因为它执行 git fetch
和 git merge
操作,但我们 可以 做的是移动本地分支的引用以匹配远程分支的引用。
为此,我们将使用 git fetch
和 git reset
。
git fetch && git reset --hard origin/BRANCH
这将丢弃您的本地更改,您的分支现在将与远程相匹配。我怎么强调都不为过,如果你这样做,你的本地更改将很难恢复(有一些方法可以通过 reflog 来完成),所以在你尝试这个之前,确保这是你想做什么。
听起来您想保留本地更改,提取最新更改,然后将您的更改置于其上。这可以用 git rebase BRANCH
来完成。你还是要解决冲突,但是冲突会先于你在历史上的工作,这样处理起来会稍微容易一些。
保留原始作品的最后一个选择是将其藏起来。使用 git reset --soft HEAD~1
将您现有的、未推送的提交移回暂存状态,然后使用 git add . && git stash
进行跟进,以便您的更改保留在存储中。如果您想 apply/pop 将存储到分支,您 仍然需要解决冲突 ,但这样做会更直接。
我正在用 git pull
更新我的代码,但在一个文件中出现提交冲突。我想从 pull
中进行更改并覆盖在本地回购中所做的事情。是否有一些命令可以简单地从 pull
中获取更改并覆盖本地更改?
还是需要手动编辑这样的file/files?..
试试这个:
git fetch --all
git reset --hard origin/master
P.S.: 可能口是心非: Force Git to overwrite local files on pull
据我了解你的情况:
- 您在具有远程的分支上进行了本地更改。
- 您在尝试将远程的更改拉入本地分支时遇到文件冲突。
- 您希望覆盖本地分支上的更改以匹配远程分支中的更改。
简单地说,可行,但您最好解决您的冲突,以防丢掉工作。
我们不能为此使用 git pull
,因为它执行 git fetch
和 git merge
操作,但我们 可以 做的是移动本地分支的引用以匹配远程分支的引用。
为此,我们将使用 git fetch
和 git reset
。
git fetch && git reset --hard origin/BRANCH
这将丢弃您的本地更改,您的分支现在将与远程相匹配。我怎么强调都不为过,如果你这样做,你的本地更改将很难恢复(有一些方法可以通过 reflog 来完成),所以在你尝试这个之前,确保这是你想做什么。
听起来您想保留本地更改,提取最新更改,然后将您的更改置于其上。这可以用 git rebase BRANCH
来完成。你还是要解决冲突,但是冲突会先于你在历史上的工作,这样处理起来会稍微容易一些。
保留原始作品的最后一个选择是将其藏起来。使用 git reset --soft HEAD~1
将您现有的、未推送的提交移回暂存状态,然后使用 git add . && git stash
进行跟进,以便您的更改保留在存储中。如果您想 apply/pop 将存储到分支,您 仍然需要解决冲突 ,但这样做会更直接。