Home
About
Blog
Products
Forum
Support
Contact
Sunbelt Computer Software
PL/B Language Development and Support
Home
About
Blog
Products
Forum
Support
Contact
git/branch.h at master · unkouxdx/git · GitHub
Skip to content
Navigation Menu
Sign in
Appearance settings
Platform
AI CODE CREATION
GitHub Copilot
Write better code with AI
GitHub Copilot app
Direct agents from issue to merge
MCP Registry
Integrate external tools
DEVELOPER WORKFLOWS
Actions
Automate any workflow
Codespaces
Instant dev environments
Issues
Plan and track work
Code Review
Manage code changes
Code Quality
Enforce quality at merge
APPLICATION SECURITY
GitHub Advanced Security
Find and fix vulnerabilities
Code security
Secure your code as you build
Secret protection
Stop leaks before they start
EXPLORE
Why GitHub
Documentation
Blog
Changelog
Marketplace
View all features
Solutions
BY COMPANY SIZE
Enterprises
Small and medium teams
Startups
Nonprofits
BY USE CASE
App Modernization
DevSecOps
DevOps
CI/CD
View all use cases
BY INDUSTRY
Healthcare
Financial services
Manufacturing
Government
See all industries
View all solutions
Resources
EXPLORE BY TOPIC
AI
Software Development
DevOps
Security
View all topics
EXPLORE BY TYPE
Customer stories
Events & webinars
Ebooks & reports
Business insights
GitHub Skills
SUPPORT & SERVICES
Documentation
Customer support
Community forum
Trust center
Partners
View all resources
Open Source
COMMUNITY
GitHub Sponsors
Fund open source developers
PROGRAMS
Security Lab
Maintainer Community
GitHub Stars
Archive Program
REPOSITORIES
Topics
Trending
Collections
Enterprise
ENTERPRISE SOLUTIONS
Enterprise platform
AI-powered developer platform
AVAILABLE ADD-ONS
GitHub Advanced Security
Enterprise-grade security features
Copilot for Business
Enterprise-grade AI features
Premium Support
Enterprise-grade 24/7 support
Pricing
Search
/
Sign in
Sign up
Appearance settings
You signed in with another tab or window.
Reload
to refresh your session.
You signed out in another tab or window.
Reload
to refresh your session.
You switched accounts on another tab or window.
Reload
to refresh your session.
Dismiss alert
{{ message }}
unkouxdx
git
Repository navigation
Code
Pull requests
Actions
Projects
Security and quality
Insights
More
items
Files
Expand file tree
master
Breadcrumbs
git
/
branch.h
Copy path
Blame
More file actions
Blame
More file actions
Latest commit
History
History
History
158 lines (142 loc) · 5.22 KB
master
Breadcrumbs
git
/
branch.h
Copy path
Top
File metadata and controls
Code
Blame
158 lines (142 loc) · 5.22 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
#ifndef
BRANCH_H
#define
BRANCH_H
struct
repository
;
struct
strbuf
;
enum
branch_track
{
BRANCH_TRACK_UNSPECIFIED
=
-1
,
BRANCH_TRACK_NEVER
=
0
,
BRANCH_TRACK_REMOTE
,
BRANCH_TRACK_ALWAYS
,
BRANCH_TRACK_EXPLICIT
,
BRANCH_TRACK_OVERRIDE
,
BRANCH_TRACK_INHERIT
,
BRANCH_TRACK_SIMPLE
,
};
extern
enum
branch_track
git_branch_track
;
/* Functions for acting on the information about branches. */
/**
* Sets branch.<new_ref>.{remote,merge} config settings such that
* new_ref tracks orig_ref according to the specified tracking mode.
*
* - new_ref is the name of the branch that we are setting tracking
* for.
*
* - orig_ref is the name of the ref that is 'upstream' of new_ref.
* orig_ref will be expanded with DWIM so that the config settings
* are in the correct format e.g. "refs/remotes/origin/main" instead
* of "origin/main".
*
* - track is the tracking mode e.g. BRANCH_TRACK_REMOTE causes
* new_ref to track orig_ref directly, whereas BRANCH_TRACK_INHERIT
* causes new_ref to track whatever orig_ref tracks.
*
* - quiet suppresses tracking information.
*/
void
dwim_and_setup_tracking
(
struct
repository
*
r
,
const
char
*
new_ref
,
const
char
*
orig_ref
,
enum
branch_track
track
,
int
quiet
);
/*
* Creates a new branch, where:
*
* - r is the repository to add a branch to
*
* - name is the new branch name
*
* - start_name is the name of the existing branch that the new branch should
* start from
*
* - force enables overwriting an existing (non-head) branch
*
* - clobber_head_ok, when enabled with 'force', allows the currently
* checked out (head) branch to be overwritten
*
* - reflog creates a reflog for the branch
*
* - quiet suppresses tracking information
*
* - track causes the new branch to be configured to merge the remote branch
* that start_name is a tracking branch for (if any).
*
* - dry_run causes the branch to be validated but not created.
*
*/
void
create_branch
(
struct
repository
*
r
,
const
char
*
name
,
const
char
*
start_name
,
int
force
,
int
clobber_head_ok
,
int
reflog
,
int
quiet
,
enum
branch_track
track
,
int
dry_run
);
/*
* Creates a new branch in a repository and its submodules (and its
* submodules, recursively). The parameters are mostly analogous to
* those of create_branch() except for start_name, which is represented
* by two different parameters:
*
* - start_committish is the commit-ish, in repository r, that determines
* which commits the branches will point to. The superproject branch
* will point to the commit of start_committish and the submodule
* branches will point to the gitlink commit oids in start_committish's
* tree.
*
* - tracking_name is the name of the ref, in repository r, that will be
* used to set up tracking information. This value is propagated to
* all submodules, which will evaluate the ref using their own ref
* stores. If NULL, this defaults to start_committish.
*
* When this function is called on the superproject, start_committish
* can be any user-provided ref and tracking_name can be NULL (similar
* to create_branches()). But when recursing through submodules,
* start_committish is the plain gitlink commit oid. Since the oid cannot
* be used for tracking information, tracking_name is propagated and
* used for tracking instead.
*/
void
create_branches_recursively
(
struct
repository
*
r
,
const
char
*
name
,
const
char
*
start_committish
,
const
char
*
tracking_name
,
int
force
,
int
reflog
,
int
quiet
,
enum
branch_track
track
,
int
dry_run
);
/*
* If the branch at 'refname' is currently checked out in a worktree,
* then return the path to that worktree.
*/
const
char
*
branch_checked_out
(
const
char
*
refname
);
/*
* Check if 'name' can be a valid name for a branch; die otherwise.
* Return 1 if the named branch already exists; return 0 otherwise.
* Fill ref with the full refname for the branch.
*/
int
validate_branchname
(
const
char
*
name
,
struct
strbuf
*
ref
);
/*
* Check if a branch 'name' can be created as a new branch; die otherwise.
* 'force' can be used when it is OK for the named branch already exists.
* Return 1 if the named branch already exists; return 0 otherwise.
* Fill ref with the full refname for the branch.
*/
int
validate_new_branchname
(
const
char
*
name
,
struct
strbuf
*
ref
,
int
force
);
/*
* Remove information about the merge state on the current
* branch. (E.g., MERGE_HEAD)
*/
void
remove_merge_branch_state
(
struct
repository
*
r
);
/*
* Remove information about the state of working on the current
* branch. (E.g., MERGE_HEAD)
*/
void
remove_branch_state
(
struct
repository
*
r
,
int
verbose
);
/*
* Configure local branch "local" as downstream to branch "remote"
* from remote "origin". Used by git branch --set-upstream.
* Returns 0 on success.
*/
#define
BRANCH_CONFIG_VERBOSE
01
int
install_branch_config
(
int
flag
,
const
char
*
local
,
const
char
*
origin
,
const
char
*
remote
);
/*
* Read branch description
*/
int
read_branch_desc
(
struct
strbuf
*
,
const
char
*
branch_name
);
/*
* Check if a branch is checked out in the main worktree or any linked
* worktree and die (with a message describing its checkout location) if
* it is.
*/
void
die_if_checked_out
(
const
char
*
branch
,
int
ignore_current_worktree
);
#endif
You can’t perform that action at this time.