git常见案例
以下是一些常见所要处理的案例:
当先有本地库,然后要推送到远端时需要的操作:
1、commit后,需要回到上一个版本,这个版本数据全部不要
(1)为保险起见,我们可以先切一个分支出来,保存当前版本,必然以后🈶️需要这个版本,又要重新开发
git checkout -b [branch]
(2)先本地代码回到上上次提交的版本
git reset --hard head^
(3) 提交本地代码到远程
如果你在直接add,commit后直接 git push。会报错
err: Updates were rejected because the tip of your current branch is behind
因为远程本地分支回滚后,版本将落后远程分支,所以你要先pull最新的,在push,这就很尴尬,因为最近一次提交的代码我都不想要了干嘛还要拉到本地
所以你只能强制提交 这是个非常危险的命令,因为它会把该版本之前commit的数据全部丢失
git push -f
2、干净的回退到上次提交之后的东西
git clean -df
git reset --hard
但问题是第一个命令只删除所有untracked的文件,如果文件已经被tracked, 修改过的文件不会被回退。而第二个命令只把tracked的文件revert到前一个版本,对于untracked的文件(比如编译的临时文件)都不会被删除。
3、clone一个远程仓库并且切换到正确的分支
1、git clone .....
2、使用git branch查看工作区分支/使用git branch -a查看本地仓库分支
3、git fetch 将远程仓库所有的分支拉下来
4、git checkout -b <name> origin/<name> 利用拉下来的你需要的分支在工作区创建一个分支
4、git回退版本后又想要回去
5、远程仓库连接不上
今天操作的时候突然发现我的远程仓库连接不上了,用下面的命令解决:
git remote add origin <remote_address>
然后发现分支没有对应到远端的分支:
git -branch --set-upstream-to-=origin/<远端分支名> <本地分支名>