File tree Expand file tree Collapse file tree 4 files changed +20
-1
lines changed
Expand file tree Collapse file tree 4 files changed +20
-1
lines changed Original file line number Diff line number Diff line change @@ -212,6 +212,9 @@ def self.global_config(name = nil, value = nil)
212212 # `"#{directory}/.git"`, create a bare repository at `"#{directory}"`.
213213 # See [what is a bare repository?](https://git-scm.com/docs/gitglossary#Documentation/gitglossary.txt-aiddefbarerepositoryabarerepository).
214214 #
215+ # @option options [String] :initial_branch Use the specified name for the
216+ # initial branch in the newly created repository.
217+ #
215218 # @option options [Pathname] :repository the path to put the newly initialized
216219 # Git repository. The default for non-bare repository is `"#{directory}/.git"`.
217220 #
Original file line number Diff line number Diff line change @@ -34,7 +34,10 @@ def self.init(directory, options = {})
3434
3535 FileUtils . mkdir_p ( options [ :working_directory ] ) if options [ :working_directory ] && !File . directory? ( options [ :working_directory ] )
3636
37- init_options = { :bare => options [ :bare ] }
37+ init_options = {
38+ :bare => options [ :bare ] ,
39+ :initial_branch => options [ :initial_branch ] ,
40+ }
3841
3942 options . delete ( :working_directory ) if options [ :bare ]
4043
Original file line number Diff line number Diff line change @@ -71,10 +71,12 @@ def initialize(base = nil, logger = nil)
7171 # options:
7272 # :bare
7373 # :working_directory
74+ # :initial_branch
7475 #
7576 def init ( opts = { } )
7677 arr_opts = [ ]
7778 arr_opts << '--bare' if opts [ :bare ]
79+ arr_opts << "--initial-branch=#{ opts [ :initial_branch ] } " if opts [ :initial_branch ]
7880
7981 command ( 'init' , arr_opts )
8082 end
Original file line number Diff line number Diff line change @@ -38,6 +38,7 @@ def test_git_init
3838 assert ( File . directory? ( File . join ( path , '.git' ) ) )
3939 assert ( File . exist? ( File . join ( path , '.git' , 'config' ) ) )
4040 assert_equal ( 'false' , repo . config ( 'core.bare' ) )
41+ assert_equal ( "ref: refs/heads/master\n " , File . read ( "#{ path } /.git/HEAD" ) )
4142 end
4243 end
4344
@@ -61,6 +62,16 @@ def test_git_init_remote_git
6162 end
6263 end
6364
65+ def test_git_init_initial_branch
66+ in_temp_dir do |path |
67+ repo = Git . init ( path , initial_branch : 'main' )
68+ assert ( File . directory? ( File . join ( path , '.git' ) ) )
69+ assert ( File . exist? ( File . join ( path , '.git' , 'config' ) ) )
70+ assert_equal ( 'false' , repo . config ( 'core.bare' ) )
71+ assert_equal ( "ref: refs/heads/main\n " , File . read ( "#{ path } /.git/HEAD" ) )
72+ end
73+ end
74+
6475 def test_git_clone
6576 in_temp_dir do |path |
6677 g = Git . clone ( @wbare , 'bare-co' )
You can’t perform that action at this time.
0 commit comments