一.暂存
git log 列出历史提交记录
git stash 目前不想提交的 但是已经修改的内容保存在堆栈中,后续可以在某个分支上恢复
出堆栈中的内容。git stash作用的范围包括工作区和暂存区中的内容,没有提交的内容都会保存在堆栈中
由于工作失误 导致远程代码被覆盖 此时可使用git stash解决, 本地修改前应该尽可能的避免本地仓库与远程之间有过多的差异 ,本地修改前执行一次git pull 先把远程更新拉到本地;提交前 先把本地修改存入栈中 然后从服务器端更新代码,这样可以避免过多的代码merge
git stash
git pull
git pop
git stash save 带备注信心的stash,会将备注信息存储起来
git stash save 'you stash message'
git stash apply 将工作栈中最上面的stash 应用到本地仓库中,可以通过stash id 将某个stash应用到本地仓库中stash@{1}
git stash apply stash@{1}
git stash list 查看存储列表
git 撤销已提交的commit
使用命令
git reset --soft HEAD^
回到上一次提交的状态
git reset --hard HEAD^
HEAD^ 表示上一个版,即上一次的commit 也可以HEAD~1 如果进行两次的commit,想要撤回,可以使用HEAD~2
-soft 不删除工作空间的改动代码,撤销commit, 不撤销git add file
-hard 删除工作空间的改动代码,撤销commit且撤销add
git 撤销已经推送(push)到远程仓库的提交
在git push 之后 发现还有一些代码需要修改,这些改动的代码在原则上不应该是一次新的提交,这个时候,就需要撤销推送 (git push) 与提交 (git commit ),然后进行代码修改,再次重新提交和推送
1.撤销提交的信息
首先通过git log 查看提交的信息,可以获取需要回退的版本号
查看提交信息 git log
我们需要撤销这次提交 所以需要退回的版本是:根据版本号修复构建号,所以,需要退回的范本号是:(commit后面的那一串东西)
撤销提交的命令:git reset --soft <版本号>
参数soft指的是:保留当前工作区,以便重新提交
可以通过git log 来查看是否撤销成功
2.撤销
通过git push origin master --force 强制提交当前版本号,以达到撤销版本号的目的:
3.修改代码,重新提交和推送
git add .
重新提交
git commit -sm 'xxxxx'
//push
git push origin HEAD:refs/for/dev
常用的git命令
查看所有分支 git branch
删除本地分支 git branch -D xxx
取消合并分支(合并一半时解决不了或者不需要合并了):git merge -- abirt
切换到xxx分支 git checkout xxx
创建xxx分支 git branch xxx 或者 git checkout -b xxx
克隆远程代码 git clone -b xxx ssh
刷新远程分支 git remote update origin -p
回滚代码 git reseet --hard 哈希值(commit号码)前六位 (回退到git log 的指定版本)
更改上次的提交信息
git commit --amend --message="your message"
git merge --abort
选项会尝试恢复到你运行合并前的状态
git diff
来比较将要提交作为合并结果的工作目录与其中任意一个阶段的文件差异。 让我们看看它们。
要在合并前比较结果与在你的分支上的内容,换一句话说,看看合并引入了什么,可以运行 git diff --ours