Вы можете использовать git push
для этого.
git push <path to repository> <local branch name>:<remote branch name>
Вот пример.
Во-первых, вот исходный репозиторий.В ветке master
есть несколько файлов, а в ветке branch1
есть дополнительный файл:
$ git branch
branch1
* master
$ ls
file1.txt file2.txt README
$ git log | grep -v Author
commit 56cd34350e846b92762d16af1c777ff4075fff3e
Date: Sun Jun 10 01:02:23 2018 -0700
Add file1.txt and file2.txt
commit c5d453a847d3b61b75f8a27de3b3cdc163421398
Date: Sun Jun 10 01:01:55 2018 -0700
Add README
$ git checkout branch1
Switched to branch 'branch1'
$ ls
file1.txt file2.txt file3.txt README
$ git log | grep -v Author
commit bbdbd16488f835ee9bd0903274e45d18b0e621a1
Date: Sun Jun 10 01:02:53 2018 -0700
Add file3.txt
commit 56cd34350e846b92762d16af1c777ff4075fff3e
Date: Sun Jun 10 01:02:23 2018 -0700
Add file1.txt and file2.txt
commit c5d453a847d3b61b75f8a27de3b3cdc163421398
Date: Sun Jun 10 01:01:55 2018 -0700
Add README
Здесь создается новый репозиторий и вставляется в него newbranch
вместе с его историей:
$ mkdir ../newrepo
$ cd ../newrepo/
$ git init
Initialized empty Git repository in /home/chuckx/code/stackoverflow/gitpush/newrepo/.git/
$ cd ../repo1/
$ git push ../newrepo/ branch1:newbranch1
Counting objects: 7, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (5/5), done.
Writing objects: 100% (7/7), 596 bytes | 596.00 KiB/s, done.
Total 7 (delta 1), reused 0 (delta 0)
To ../newrepo/
* [new branch] branch1 -> newbranch1
$ cd ../newrepo/
$ git branch
newbranch1
$ ls
$ git checkout newbranch1
Switched to branch 'newbranch1'
$ ls
file1.txt file2.txt file3.txt README
$ git log | grep -v Author
commit bbdbd16488f835ee9bd0903274e45d18b0e621a1
Date: Sun Jun 10 01:02:53 2018 -0700
Add file3.txt
commit 56cd34350e846b92762d16af1c777ff4075fff3e
Date: Sun Jun 10 01:02:23 2018 -0700
Add file1.txt and file2.txt
commit c5d453a847d3b61b75f8a27de3b3cdc163421398
Date: Sun Jun 10 01:01:55 2018 -0700
Add README