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