git中 git checkout -- file 与 git reset -- file 试验

本文验证 git checkout -- file   与  git reset -- file 命令的具体作用区域。

个人认为 git checkout -- file 是将暂存区的内容恢复到工作区;git reset -- file 是将仓库的内容恢复到暂存区

网上找个了图,觉得不错,展示下

上图中我有疑问,个人认为应该不是直接从仓库还原到了工作,而应该还是从暂时存区还原到了工作,只不过暂存区的dev.txt已经提交了,所以不显示,但文件仍然存在。

git在本地会保存两个版本的仓库,分为本地仓库远程仓库
1、本地仓库就是我们平时 add、commit 的那个仓库。
2、远程仓库可以用git remote -v查看(这里的远程仓库是保存在本地的远程仓库,等同于另一个版本,不是远程的远程仓库)。

说说 fetch 和 pull 的不同:

fetch 只能更新远程仓库的代码为最新的,本地仓库的代码还未被更新,我们需要通过 git merge origin/master 来合并这两个版本,你可以把它理解为合并分支一样的。

pull 操作是将本地仓库和远程仓库(本地的)更新到远程的最新版本

如果想要更加可控一点的话推荐使用fetch + merge。

git 一个分支完全替换另一个分支

git push origin develop:master -f
 把本地的 develop 分支强制(-f)推送到远程 master
  
 但是上面操作,本地的 master 分支还是旧的,通常来说应该在本地做好修改再去 push 到远端,所以我推荐如下操作
  
 git checkout master // 切换到旧的分支
  
 git reset --hard develop // 将本地的旧分支 master 重置成 develop
  
 git push origin master --force // 再推送到远程仓库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值