git pull和git fetch(推荐使用git fetch,相对安全些)

今天在git pull时遇到了问题,它自动auto-merge的结果不是我想要的,所以我隐约觉得git pull是一个不太安全的做法。于是上网查询了更安全同步本地与远程代码的方法,发现了git fetch这个命令,于是调研了一下。

git fetch origin master#只取回远程更新的信息,但并没有改变本地的代码,工作空间和缓存区都没改变,就相当于专门开辟了一片空间来保存远程仓库更新的信息。远程更新的信息指针为FETCH_HEAD
git diff FETCH_HEAD#展示本地当前状态和远程仓库最新提交的区别
git show FETCH_HEAD#展示远程仓库最新提交和远程仓库上次提交的区别
git fetch origim master:tmp#将远程仓库的内容克隆到新建分支tmp分支上
git diff tmp#比较maste和tmp的区别,即本地和远程最新提交的区别,来确定merge是否有风险
git merge FETCH_HEAD#将本地和远程最新提交merge

git pull 就相当于 git fetch && git merge FETCH_HEAD
所以我觉得还是git fetch相对安全一点,最起码在merge之前能知道本地和远程到底有啥不一样

建议,以后更新代码使用以下方式

git fetch#获取远程更新
git diff FETCH_HEAD#比较远程最新提交与本地仓库的区别,确认无误后
git merge FETCH_HEAD#确认无误后merge代码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值