1.git branch:查看当前分支,如果在后面加-a则表示查看所有分支。
2.git log:查看提交历史,在commit id这一项中可以看到提交的历史版本id。
3.git reflog:查看每一次命令的记录
4.git reset --soft:回退到某个版本,只回退了commit的信息。
5.git reset --mixed:为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,回退commit和index信息。
6.git reset --hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容,撤销的commit中所包含的更改被冲掉。
二:步骤
1.回滚到指定版本
首先进入项目根目录下,使用git log 命令,找到需要返回的commit id 号,使用git reset --hard 后跟你需要的commit id号,这样你就回到了指定的版本,注意git reset --hard与git reset --soft的区别:
git reset –-soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。通常使用在当你git commit -m "注释"提交了你修改的内容,但内容有点问题想撤销,又还要提交,就使用soft,相当于软着路;
git reset -–hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容,撤销的commit中所包含的更改被冲掉,相当于硬着路,回滚最彻底。
2.返回到最新版本
当你发现需要回滚到最新版本时,可以采用以下指今步骤
git log:查看历史提交
git reflog:查看每一次命令记录
通过git reflog命令查看到之后,我们再利用 git reset 来返回到相应的版本即可,HEAD前面的一串字符为我们简写的ID,所以最后输入
git reset --hard ca936c3即回滚到了最新的版本号了
git revert HEADgit push origin 当前分支
注意:revert和reset的区别:revert是放弃指定提交的修改,但是会生成一次新的提交,需要填写提交注释,以前的历史记录都在,而reset是指将HEAD指针指到指定提交,历史记录中不会出现放弃的提交记录。
如果是使用reset的话:
git reset --hard HEAD^
git push origin 当前分支 -f(--force,该参数是强制提交,因为reset之后本地库落后于远程一个版本,因此需要强制提交)
首先需要log查看想要删除的某次提交的commit-id
git rebase -i "commit-id"
同删除历史某次提交前面两个步骤进入弹出界面,将红框中改为edit之后,保存退出,当前分支会进入到REBASE-i(当前分支/REBASE-i)的状态
然后执行以下命令:
git add .
至此就已经完成历史某次提交。
开发过程中可能遇到需要在某个分支中中的某个提交里进行修改。
那么首先我们先切换到要用的分支
git branch -av 查看所有分支。
切换分支 git checkout 分支名
使用git log -10 查看最近10条提交。 找到对应的commit id,默认前面6个即可。他会找到对应的。
git checkout a6572b1214
在此分支上进行修改后进行add .然后 commit 提交。 这时候是无法push的。会提示你先提交到一个远程分支上
git push origin HEAD:<name-of-remote-branch>
而你用git push origin 新分支名,也会报错。会提示 error: failed to push some refs to xxx
因为你本地使用的是一个远程游离分支,需要先创建一个新本地分支进行绑定 git checkout -b new_branch_name
然后提交到一个远程新分支上。git push origin origin_new_branch_name
这样就可以了。原来的分支也不会丢失。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)