diff --git a/src/plugins/git/branchdialog.cpp b/src/plugins/git/branchdialog.cpp
index 7a86cd3ec14..a18c9a0d397 100644
--- a/src/plugins/git/branchdialog.cpp
+++ b/src/plugins/git/branchdialog.cpp
@@ -71,6 +71,7 @@ BranchDialog::BranchDialog(QWidget *parent) :
connect(m_ui->renameButton, SIGNAL(clicked()), this, SLOT(rename()));
connect(m_ui->diffButton, SIGNAL(clicked()), this, SLOT(diff()));
connect(m_ui->logButton, SIGNAL(clicked()), this, SLOT(log()));
+ connect(m_ui->resetButton, SIGNAL(clicked()), this, SLOT(reset()));
connect(m_ui->mergeButton, SIGNAL(clicked()), this, SLOT(merge()));
connect(m_ui->rebaseButton, SIGNAL(clicked()), this, SLOT(rebase()));
connect(m_ui->cherryPickButton, SIGNAL(clicked()), this, SLOT(cherryPick()));
@@ -320,6 +321,22 @@ void BranchDialog::log()
GitPlugin::instance()->gitClient()->log(QString(m_repository), QString(), false, QStringList(branchName));
}
+void BranchDialog::reset()
+{
+ QString currentName = m_model->fullName(m_model->currentBranch(), true);
+ QString branchName = m_model->fullName(selectedIndex(), true);
+ if (currentName.isEmpty() || branchName.isEmpty())
+ return;
+
+ if (QMessageBox::question(this, tr("Git Reset"), tr("Hard reset branch '%1' to '%2'?")
+ .arg(currentName).arg(branchName),
+ QMessageBox::Yes, QMessageBox::No) == QMessageBox::Yes) {
+ GitPlugin::instance()->gitClient()->reset(QString(m_repository), QLatin1String("--hard"),
+ branchName);
+
+ }
+}
+
void BranchDialog::merge()
{
if (!Core::DocumentManager::saveAllModifiedDocuments())
diff --git a/src/plugins/git/branchdialog.h b/src/plugins/git/branchdialog.h
index 841f16150f0..c9e7dbcffdb 100644
--- a/src/plugins/git/branchdialog.h
+++ b/src/plugins/git/branchdialog.h
@@ -70,6 +70,7 @@ private slots:
void rename();
void diff();
void log();
+ void reset();
void merge();
void rebase();
void cherryPick();
diff --git a/src/plugins/git/branchdialog.ui b/src/plugins/git/branchdialog.ui
index 92c50a68785..8f7be998ad6 100644
--- a/src/plugins/git/branchdialog.ui
+++ b/src/plugins/git/branchdialog.ui
@@ -130,6 +130,13 @@
+ -
+
+
+ Reset
+
+
+
-