git版本回退、git远程分支管理、git本地分支管理、git生产代码bug修复

一、线上版本回退操作流程:
如果你发版了push了代码,发现代码错了,需要版本回退的话,执行以下三步即可
1. git reflog 或者 git log 或者 git log -g 查看历史提交记录
2. git reset --hard [commitid] 本地库版本回退
3. git push -f origin [branchName] 同步到远端仓库

如果本地创建的分支没有提交,不小心删除了怎么办?

**本质上就是根据 提交的版本号创建新的分支, 新创建的分支代码跟当时提交的版本的代码是一致的。**
(1) 输入` git log -g` ,找回之前提交的commit,并记下commit_id。(可以通过键盘上下键翻看所有的记录)
(2) `git branch newbranch commit_id`
(3) `git checkout newbranch` 切换到newbranch分支,检查文件是否存在。

二、当你本地修改代码了,但是又不想提交的时候想拉取代码,此时执行下面三步即可:
1.git stash //锁定当面文件
2.git pull //拉取代码
3.git stash pop //恢复刚刚的修改文件,可以查看到现在变动的文件

三、git创建本地分支,推送到远程

  • 创建本地分支
    git branch 分支名

例如:git branch dev,这条命令是基于当前分支创建的本地分支,假设当前分支是master(远程分支),则是基于master分支创建的本地分支dev。

  • 删除本地分支(必须保证不在删除的分支上,才能进行删除)

    ` git branch -d dev` 
    强制删除 :
    ` git branch -D dev` 
    
  • 切换到本地分支
    git checkout 分支名

例如:git checkout dev,这条命令表示从当前master分支切换到dev分支。

  • 创建本地分支并切换
    git checkout -b 分支名
    例如:git checkout -b dev,这条命令把创建本地分支和切换到该分支的功能结合起来了,即基于当前分支master创建本地分支dev并切换到该分支下。

  • 提交本地分支到远程仓库
    git push origin 本地分支名
    例如: git push origin dev ,这条命令表示把本地dev分支提交到远程仓库,即创建了远程分支dev。
    但是这样git push origin 本地分支名,把当前分支推送到远程了,但是没有与本地分支建立起连接,使用git pull 会报错

这个时候需要给本地分支与远程的分支进行建立连接:
git branch --set-upstream-to=origin/dev 此时,在进行git branch -vv 进行查看

也可以在push的时候直接加上--set-upstream 直接关联,一步到位
git push --set-upstream origin dev

  • 删除远程分支

git push --delete origin dev
或者:
git push origin :dev

  • 查看分支:
    * 查看本地分支对应的远端分支
    git branch -vv

  * 查看全部分支: 即所有远程分支和本地分支
  `git branch -a`
  * 查看远程分支
  `git branch -r`
  * 查看本地分支
  `git branch `

git pull 报错:error: cannot lock 'ref/remotes/origin/blahblahblah': is at something but expected somethingelse

执行命令:
running: git gc --prune=now 清空远程不存在的分支对象
and deleteing .git/refs/remote/origin 删除本地的依赖关系文件

原文地址:https://www.cnblogs.com/vhviqd/p/12398545.html