Git重置某些文件到指定版本
2019-10-22 本文已影响0人
leilifengxingmw
开始提交历史如下图所示,我是使用source tree 来查看提交历史的。

我的目的是将v3版本的 MainActivity.java 和 SecondActivity.kt 重置到v1版本。
v1版本
MainActivity.java
private void mainV1(){
}
SecondActivity.kt
private fun secondV1(){
}
v2版本
MainActivity.java
private void mainV1() {
}
private void mainV2() {
}
SecondActivity.kt
private fun secondV1() {
}
private fun secondV2() {
}
v3版本
MainActivity.java
private void mainV1() {
}
private void mainV2() {
}
private void mainV3() {
}
SecondActivity.kt
private fun secondV1() {
}
private fun secondV2() {
}
private fun secondV3() {
}
从v1到v3版本每个版本分别为MainActivity.java 和 SecondActivity.kt 各自添加了一个方法。
现在开始将v3版本的 MainActivity.java 和 SecondActivity.kt 重置到v1版本。
首先我们看到 v1提交的 commit id 是 d44f32e
然后运行命令
git reset d44f32e app/src/main/java/com/hm/gitdemo/MainActivity.java app/src/main/java/com/hm/gitdemo/SecondActivity.kt
然后我们查看一下暂存区和工作区的文件,如下图所示

这个时候,暂存区中的文件就是v1版本的MainActivity.java 和SecondActivity.kt 。
工作区中的文件就是v3版本的MainActivity.java 和SecondActivity.kt 。
接下来我们丢弃工作区的内容。
运行命令
git checkout -- app/src/main/java/com/hm/gitdemo/MainActivity.java app/src/main/java/com/hm/gitdemo/SecondActivity.kt
最后我们将暂存区中的内容提交就完成了我们的重置工作。
git commit -m "重置某些文件到v1版本。"
最终的提交历史如下图所示。

参考链接