在确定性上积累,在不确定性上低成本试错!|

FreeCheng

园龄:3年9个月粉丝:0关注:1

git同步为远程仓库某分支和撤回更改

1、终极解决方法:放弃本地的所有更改,使用远程分支重置/覆盖所有内容:

git fetch --all  # 从远程下载最新版本,不会尝试合并或重新设置任何内容

git reset --hard <remote>/<branch_name>  # --hard选项更改工作树中的所有文件,来匹配远程分支中的文件。

参考:如何使用 Git Pull 覆盖本地文件 (freecodecamp.org)

 

2、详细的分不同阶段来重置的方法,分为unstaged、staged、commit

unstaged:只是刚刚改动后保存了,但没有使用git add的那些文件,使用git restore <file_name | .>可以使文件恢复到上次提交时的状态。

staged: 已经使用git add添加到staging area了,此时使用 git reset <file_name | .>(此方法似乎已不能使用)来unstag它们,然后再git restore <file_name | .>来放弃对它们的更改(想要撤回上次commit,使用: git reset --soft head~1)

commit:当已经使用git commit提交了之后,可以使用 git reset head~n来回退n步,此时的更改会处于unstaged状态,再使用git restore <file_name | .>就可以对某些文件进行重置。

参考:Git Restore and Git Reset (academind.com)

 

本文作者:FreeCheng

本文链接:https://www.cnblogs.com/freecheng/p/17579392.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   FreeCheng  阅读(102)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起