53 lines
1.3 KiB
Raw Normal View History

#ifndef RESET_H
#define RESET_H
#include "hash.h"
#include "repository.h"
/* Request a detached checkout */
#define RESET_HEAD_DETACH (1<<0)
/* Request a reset rather than a checkout */
#define RESET_HEAD_HARD (1<<1)
/* Run the post-checkout hook */
/* Only update refs, do not touch the worktree */
#define RESET_HEAD_REFS_ONLY (1<<3)
/* Update ORIG_HEAD as well as HEAD */
#define RESET_ORIG_HEAD (1<<4)
struct reset_head_opts {
* The commit to checkout/reset to. Defaults to HEAD.
const struct object_id *oid;
* Optional branch to switch to.
const char *branch;
* Flags defined above.
unsigned flags;
* Optional reflog message for HEAD, if this omitted but oid or branch
* are given then default_reflog_action must be given.
const char *head_msg;
* Optional reflog message for ORIG_HEAD, if this omitted and flags
* contains RESET_ORIG_HEAD then default_reflog_action must be given.
const char *orig_head_msg;
* Action to use in default reflog messages, only required if a ref is
* being updated and the reflog messages above are omitted.
const char *default_reflog_action;
int reset_head(struct repository *r, const struct reset_head_opts *opts);