假设我从origin/master
分支到brancha
。
我对brancha
进行了更改,提交和推送(包括创建,提交和推送新文件)。
现在,我想再次使brancha
与origin/master
的 content 完全相同(因为,说我的更改有误,并且对{{1 }})。
所以我希望我的分支基本上是master
的一个新分支,但是我希望我的旧更改已被记录,因此我可以在历史的后面看到它。
有没有办法做到这一点?
答案 0 :(得分:1)
要保存更改,您需要一个指向其当前提示的指针-例如标签或其他分支。
git tag <tag_name> brancha
然后重置分支,使其与当前origin/master
相匹配:
git checkout brancha
git reset --hard origin/master
答案 1 :(得分:0)
如果要在分支提交(您希望保留)之上创建一个新的提交,以反映来源/主文件,我建议重设-硬然后软(如“ Practical uses of git reset --soft
?” )。
public void onClick(View v) {
String name=listItemData.get(i).getName();
Intent intent = new Intent(mActivity, SecondActivity.class);
intent.putExtra("NAME", name);
mActivity.startActivity(intent);
}
首先,将索引和工作树重置为要查看的内容:origin / master
m--m--m (origin/master)
\
a--a--a (brancha, HEAD)
问题:git checkout brancha
git branch tmp
git reset --hard origin/master
m--m--m (origin/master, brancha, HEAD)
\
a--a--a (tmp)
的历史不再被引用:将brancha
HEAD返回到其原始位置,但是没有更改索引和工作树(它们都反映了brancha
)
origin/master
现在您可以添加并提交:应该计算相关的增量,以设置内容与git reset --soft tmp
m--m--m (origin/master)
\
a--a--a (tmp, brancha, HEAD)
相同的新提交。
origin/master
git add .
git commit -m "Restore origin/master content in a new commit on brancha"
m--m--m (origin/master)
\
a--a--a----M (brancha, HEAD)
(tmp)
和原始/主提交应具有相同的内容。