具体问题
问题描述:
自己修改了代码之后,师兄又push了新的代码上去,所以需要新建dev分支保存我自己的修改,但是放弃对本地master分支的修改,把本地master分支update到师兄那个 origin master 分支的版本
过程概述:
对于本地的修改,可以先建立一个 dev 分支,同时在远端也建立一个 dev 分支,然后把本地的 dev 分支推送到远端dev分支。
然后切换回本地的master分支,然后回退本地master分支到上一个版本,再拉取远端的master分支到本地
具体步骤:
-
本地先建立一个 dev 分支,并切换上去
git checkout -b dev
-
查看当前分支
$ git branch * dev master
-
把本地的 dev 分支推送到远端dev分支
$ git add env.txt $ git commit -m "add env" [dev 7a5e5dd] add env 1 file changed, 1 insertion(+) create mode 100644 env.txt $ git push origin dev
指定本地
dev
分支与远程origin/dev
分支的链接,根据提示,设置dev
和origin/dev
的链接:$ git branch --set-upstream-to=origin/dev dev Branch 'dev' set up to track remote branch 'dev' from 'origin'.
-
切换回本地的master分支
git switch master
此时因为还没有拉取远端master的代码,所以HEAD指针指向旧版本的master代码
-
查看当前分支
$ git branch dev * master
星号指向master分支,说明此时切换分支成功
-
回退本地master分支到上一个版本,本地代码变成上一个版本
$ git reset --hard 1094a 或者 $ git reset --hard HEAD^
-
拉取远端的master分支到本地,本地代码变成跟远端同步的最新版本
$ git pull
此时HEAD指针也到最新的master版本了
-
把本地代码切换回dev版本继续开发
$ git switch dev
此时HEAD指针指向 dev 版本了