创新互联自成立以来,一直致力于为企业提供从网站策划、网站设计、网站制作、网站设计、电子商务、网站推广、网站优化到为企业提供个性化软件开发等基于互联网的全面整合营销服务。公司拥有丰富的网站建设和互联网应用系统开发管理经验、成熟的应用系统解决方案、优秀的网站开发工程师团队及专业的网站设计师团队。
开源许可证:
对于没有本地库的小伙伴可以安装好Git工具(详见:https://git-scm.com/book/zh/v2/%E8%B5%B7%E6%AD%A5-%E5%AE%89%E8%A3%85-Git)
在本地选择一个文件夹,右键 》 Git Bash Here 进入指令窗口。
使用git init初始化本地库:$ git init # 初始化本地git库生成.git版本管理文件。
注意:记住所有的git指令都必须在含有.git(隐藏文件)的文件夹下执行,否则git指令会无效。
一般步骤(创建Gitee仓库时没有文件):
$ git remote add 仓库别名 仓库的https地址
$ git push 仓库别名 分支名
对于创建仓库时有文件且有多个分支时:
$ git remote add 仓库别名 仓库的https地址 # 给仓库起别名
$ git pull 仓库别名 分支名 --allow-unrelated-histories # 由于仓库存在文件需要先push分支然后再拉代码,--allow...表示强制合并分支,对于多个分支适用。
$ git push 仓库别名 分支名 # 将本地库发送到gitee的仓库,第一次一般需要登录。
之后,就可以正常地用 git push 和 git pull 推送了!
如果连接时登录失败可以删除git 认证账户,重新remote :
如果在使用命令 git remote add 时报错:
$ git remote add origin git@gitee.com:imnoob/runoob-test.git
fatal: remote origin already exists.
这说明本地库已经关联了一个名叫 origin 的远程库,此时,可以先用 git remote -v 查看远程库信息:
$ git remote -v
origin git@github.com:tianqixin/runoob.git (fetch)
origin git@github.com:tianqixin/runoob.git (push)
可以看到,本地库已经关联了 origin 的远程库,并且,该远程库指向 GitHub。
我们可以删除已有的 GitHub 远程库:
$ git remote rm origin
再关联 Gitee 的远程库(注意路径中需要填写正确的用户名):
$ git remote add origin git@gitee.com:imnoob/runoob-test.git
此时,我们再查看远程库信息:
$ git remote -v
origin git@gitee.com:imnoob/runoob-test.git (fetch)
origin git@gitee.com:imnoob/runoob-test.git (push)
现在可以看到,origin 已经被关联到 Gitee 的远程库了。
通过 git push 命令就可以把本地库推送到 Gitee 上。
有的小伙伴又要问了,一个本地库能不能既关联 GitHub,又关联 Gitee 呢?
答案是肯定的,因为 git 本身是分布式版本控制系统,可以同步到另外一个远程库,当然也可以同步到另外两个远程库。
使用多个远程库时,我们要注意,git 给远程库起的默认名称是 origin,如果有多个远程库,我们需要用不同的名称来标识不同的远程库。
仍然以 runoob-test 本地库为例,我们先删除已关联的名为 origin 的远程库:
$ git remote rm origin
然后,先关联 GitHub 的远程库:
$ git remote add github git@github.com:tianqixin/runoob-git-test.git
注意,远程库的名称叫 github,不叫 origin 了。
接着,再关联 Gitee 的远程库:
$ git remote add gitee git@gitee.com:imnoob/runoob-test.git
同样注意,远程库的名称叫 gitee,不叫 origin。
现在,我们用 git remote -v 查看远程库信息,可以看到两个远程库:
$ git remote -v
gitee git@gitee.com:imnoob/runoob-test.git (fetch)
gitee git@gitee.com:imnoob/runoob-test.git (push)
github git@github.com:tianqixin/runoob.git (fetch)
github git@github.com:tianqixin/runoob.git (push)
如果要推送到 GitHub,使用命令:
git push 远程库的别名 分支名
git push 远程主机名 本地分支名:远程分支名
例:
$ git push github master
如果要推送到 Gitee,使用命令:
$ git push gitee master
这样一来,我们的本地库就可以同时与多个远程库互相同步:
$ git remote add 远程仓库别名 仓库的https地址 # 给远程仓库起别名
$ git clone 远程仓库的https地址 # 将远程仓库克隆到本地。
如果在没有.git管理文件的文件夹下克隆Git仓库后,需要切换到下一级文件夹(即含有.git管理文件的文件夹下继续执行git指令。)
$ git checkout dev
在公司下载完代码后,继续开发。在dev分支开发完成之后需要commit 到本地库保持进度的更新
$ git commit -a -m 'dev分支第一次开发完成'
准备递交代码到Gitee上
$ git pull 远程仓库别名 dev # 在提交到gitee上之前pull一下最新的代码,防止之前有人提交过dev分支的代码,导致自己push不上去
修改完合并后的代码
$ git commit -a -m 'dev分支第一次开发完成' # 提交dev分支代码到本地库
$ git push 远程仓库别名 dev # 将本地库master分支的代码推送到gitee仓库中
切换到dev分支准备工作
$ git checkout dev
拉代码
$ git pull 远程仓库别名 dev
继续开发
提交代码到Gitee上
$ git pull 远程仓库别名 dev # 在提交到gitee上之前pull一下最新的代码,防止之前有人提交过dev分支的代码,导致自己push不上去
修改完合并后的代码
$ git commit -a -m 'dev分支第一次开发完成' # 提交dev分支代码到本地库
$ git push 远程仓库别名 dev # 将本地库master分支的代码推送到gitee仓库中
将本地库的dev分支合并到master分支,并将master分支推送到Gitee上
$ git commit -a -m 'dev分支的功能开发完成' # 提交dev分支代码到本地库
$ git checkout master # 从dev分支切换到master分支,dev开发的文件都会消失,所以需要提前在dev分支上commit。记住所有的checkout之前一定要commit(等价于Ctrl+s)代码,防止代码丢失。
$ git merge dev # 在master分支上合并dev分支,合并完成后需要自行解决冲突
$ git pull 远程仓库别名 master # 在提交到gitee上之前pull一下最新的代码,防止之前有人提交过master分支的代码,导致自己push不上去
修改完合并后的代码
$ git commit -a -m 'merge分支开发完成' # 提交merge分支代码到本地库
$ git push 远程仓库别名 master # 将本地库master分支的代码推送到gitee仓库中
把dev分支也推送到远程
$ git checkout dev # 从master分支切换到dev分支,此处紧跟上步操作,刚刚commit了master分支,所以此处可以不commit。
$ git merge master # 在dev分支上合并master分支,因为需要保持master与dev分支的同步,所以在两个分支上都需要分别做merge操作。
$ git pull 远程仓库别名 dev # 在提交到gitee上之前pull一下最新的代码,防止之前有人提交过master分支的代码,导致自己push不上去
修改完合并后的代码
$ git commit -a -m 'dev分支开发完成' # 提交dev分支代码到本地库
$ git push 远程仓库别名 dev # 将本地库dev分支的代码推送到gitee仓库中