# Git三联问题小记
逛论坛的时候忽然看到有楼在讨论 git fetch
/ git pull
/ git reset --hard
的问题,记录一下回复和我自己查阅的内容
git fetch
用于在远程仓库更新时(包括他人上传 / 更改了文件或者说开了一个新的分支),拉取更改到本地git pull
=git fetch
+git merge origin/<branch>
用于当他人在操作者本地当前工作分支上产生了新的commits
,如果操作者想将他人的commits
合并到自己的本地分支时。git
会首先尝试自动合并,如果产生冲突,需要手动解决git reset
在这个地方是处理 当操作者本地与远程仓库合并时产生了很多冲突时,这个时候如果不是必要保留本地文件更改,使用此命令。该命令会强制将所有本地文件与远程仓库版本同步,一般是先使用git fetch
,再运行git reset --hard origin/<master>
也就是说
git fetch
git reset --hard origin/<branch>
将会忽略掉本地更改,强制与远程仓库同步, 而
git fetch
git merge origin/<branch>
# 或者说下句
git pull
将会尝试保有本地更改,采取手动解决冲突的方式