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/<远端分支名>  <本地分支名>

 

posted @ 2020-07-11 11:17  会打架的程序员不是好客服  阅读(257)  评论(0编辑  收藏  举报