GIT

作者: 哥只是个菜鸟 | 来源:发表于2020-03-13 16:47 被阅读0次
    image.png

    首先回退本地的代码

    • 代码回退(代码没了):
      将自己最近的一次提交撤销,回到push之前的状态。但是所有commit的内容就都消失了。
    git reset --hard HEAD^
    
    • 代码回退(代码还在)
      将自己最近的一次提交撤销,回到push之前的状态。commit的内容不会消失。
    git reset --soft HEAD^
    
    • 一次回退多个版本(比如2个)
    git reset --soft HEAD~2
    
    • 回退到某个指定版本
    git reset --soft 1234567
    

    然后提交到远程分支

    • 提交到远程分支
    git push -f origin master ## 这里假设只有一个master分支
    或者
    git push origin HEAD --force
    
    origin就是一个名字,它是在你clone一个托管在Github上代码库时,git为你默认创建的指向这个远程代码库的标签,origin指向的是repository,master只是这个repository中默认创建的第一个branch。当你git push的时候因为origin和master都是默认创建的,所以可以这样省略。 
    注意:本地分支回滚后,版本将落后远程分支,必须使用强制推送覆盖远程分支,否则无法推送到远程分支
    

    提交代码

    • 提交代码到暂存区
    git add .
    
    • 提交代码到本地仓库
    git commit -m "branch test"
    
    • 提交代码到远程仓库
    git push
    
    • 从远程仓库里拉取一条本地不存在的分支时
    git checkout -b dev origin/dev
    
    • 查看所有分支
    git branch -a
    
    • 切换本地分支
    git checkout dev
    
    • 新建本地分支
    git branch dev
    
    • 查看git地址
    git remote  -v
    
    • 从master合并到当前分支
      记录下合并动作,很多时候这种合并动作是垃圾信息
      不会修改原 commit ID
      冲突只解决一次
      分支看着不大整洁,但是能看出合并的先后顺序
      记录了真实的 commit 情况,包括每个分支的详情
    git merge  master
    
    • 从master合并到当前分支
      改变当前分支 branch out 的位置
      得到更简洁的项目历史
      每个 commit 都需要解决冲突
      修改所有 commit ID
    git rebase master
    

    删除中间无效的提交记录

    先回退到指定的版本

    git rebase --hard xxx
    

    再执行以下命令即可

    git push origin HEAD -f
    

    丢弃本地代码

    • 丢弃一个文件
    git checkout -- filename
    
    • 放弃所有文件修改
    git checkout .
    
    • 已经加入缓存的代码(git add .),回到上一步的状态
    git reset HEAD filename 
    
    • 丢弃所有的缓存代码
    git reset HEAD
    

    相关文章

      网友评论

          本文标题:GIT

          本文链接:https://www.haomeiwen.com/subject/fbzkshtx.html