首先回退本地的代码
- 代码回退(代码没了):
将自己最近的一次提交撤销,回到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
网友评论