本地仓库同步到gitlab
帮助文档
git remote --help
操作场景:
- 本地创建git仓库(含有readme.md文件), commit了三次
- gitlab网站创建了一个项目 添加了readme.md 文件
- 再本地添加 远程关联
- push到gitlab
1:添加远程分支的关联
git remote add gitlab git@git.demo123.com:dotnet/basics/gitstudy.git
2: 拉取到本地来吧
git fetch gitlab
- 因为本地和远程的readme.md 文件没有做合并, 我们现在来 merge一下
soaeon@DESKTOP-FUJJTHR MINGW64 /f/gitstudy (master)
$ git merge gitlab/master
fatal: refusing to merge unrelated histories
- 将两个不相干的文件 merge一下
soaeon@DESKTOP-FUJJTHR MINGW64 /f/gitstudy (master)
$ git merge --allow-unrelated-histories gitlab/master
结果如下:
Merge remote-tracking branch 'gitlab/master'
# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
F:/gitstudy/.git/MERGE_MSG [unix] (00:17 23/05/2019) 1,1 全部
"F:/gitstudy/.git/MERGE_MSG" [unix] 7L, 272C
我们不做任何更改, 直接esc : wq 保存一下即可
merge的结果如下:
soaeon@DESKTOP-FUJJTHR MINGW64 /f/gitstudy (master)
$ git merge --allow-unrelated-histories gitlab/master
Merge made by the 'recursive' strategy.
README.md | 2 ++
1 file changed, 2 insertions(+)
create mode 100644 README.md
执行gitk 查看一下分支图
soaeon@DESKTOP-FUJJTHR MINGW64 /f/gitstudy (master)
$ gitk
- 推送到远端
git push gilab master
git push的一般形式为 git push <远程主机名> <本地分支名> <远程分支名> ,例如 git push origin master:refs/for/master ,即是将本地的master分支推送到远程主机origin上的对应master分支, origin 是远程主机名,
第一个master是本地分支名,第二个master是远程分支名。
关于本地分支推送到远程分支
推送本地分支local_branch到远程分支 remote_branch并建立关联关系(origin 是git 仓库url的简称)
a.远程已有remote_branch分支并且已经关联本地分支local_branch且本地已经切换到local_branch
git push
b.远程已有remote_branch分支但未关联本地分支local_branch且本地已经切换到local_branch
git push -u origin/remote_branch
c.远程没有有remote_branch分支并,本地已经切换到local_branch
git push origin local_branch:remote_branch
来源:oschina
链接:https://my.oschina.net/u/4317546/blog/3527225