Git撤销某个commit

1
2
3
4
5
6
7
8
git reset –mixed:此为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,同时清空了暂存区(回退commit和index信息)
git reset –soft:回退到某个版本,只回退了commit的信息,git不会清除你的暂存区。如果还要提交,直接commit即可
git reset –hard:彻底回退到某个版本,直接覆盖工作区,暂存区,本地的源码所有的内容也会变为上一个版本的内容
Git撤销命令后面的可选参数:
HEAD 最近一个提交
HEAD^ 上一次
<commit_id> 每次commit的SHA1值. 可以用git log 看到,也可以在页面上commit标签页里找到

如果本地的源码彻底回退到某个版本,并希望远程Git仓库的记录也回滚的话。

1
2
git reset --hard <commit_id>
git push origin HEAD --force

如果本地的源码彻底回退到某个版本,又想回滚到回滚前的某个版本。

1
git reflog

git reflog 可以查看所有分支的所有操作记录(包括commit和reset的操作),包括已经被删除的commit记录,git log则不能察看已经删除了的commit记录。

修改Git使用的远程仓库

三种方式:

1:修改命令 git remte origin set-url url

2:先删后加 git remote rm origin && git remote add origin url

3:直接修改文件: .git/config

打包出Git两个commit之间提交过的文件

1
git diff xxx xxx --name-only | xargs tar -cvzf update.tar.gz