文档章节

使用GIT BASH管理多个远程代码库

hosser
 hosser
发布于 2015/03/22 00:36
字数 967
阅读 323
收藏 7

使用GIT BASH管理多个远程代码库技术

maybe yes 发表于2015-01-15 13:11

原文链接 : http://blog.lmlphp.com/archives/62  来自 : LMLPHP后院

我的另一篇文章《GITHUB之GIT BASH使用教程》, 最近一段时间,百度等搜索引擎也带来了一些流量,看到有很多网友浏览,也有网友来过多次。这篇文章再做一些补充,关于如何使用 GIT 推送代码到多个远程代码库。使用场景:比如我们的项目同时放到了 GITHUB 和 GITOSC 中,这个时候本地只有一份项目代码,当本地开发时做了更新,要保持远程两个远程版本库的一致性,就必须将代码同时推送到两个远程服务器。

这里将不使用 GITHUB 自带的 GIT 客户端,GITHUB for windows 客户端做了定制化,对于推送到其他服务端不太方便。

在 GIT 客户端中,使用 eval `ssh-agent` (注意是数据库字段符号,也就是键盘数字 1 左边的那个按键)命令进入 SSH 模式,打开秘钥管理器,然后使用 ssh-add 命令添加私钥。很多不太熟悉的人往往因为没有执行 ssh-agent 而导致不能使用 ssh 命令连接到服务器。

国内的 GIT 托管服务 GITOSC 不能使用 SSH 协议来进行推送代码功能,只能用来拉取项目更新,官方建议使用 https 协议来进行代码的推送,这样有个不方便,就是每次都需要输入用户名和密码。网上也有教程使 https 协议下能够记住密码的方法,但是感觉太过于麻烦,本人更习惯于 SSH 带来的方便。我第一次将 LMLPHP 代码托管在 GITOSC 的时候,由于习惯了 GITHUB 的 SSH 操作,对于 https 协议推送反而不知道怎么使用。从下面的操作日志中,可以看到 .git/config 文件中的内容,可以通过修改该配置文件添加远程库,或者使用 ”git remote add origin_xxx address“ 的方式来增加远程库。下面的操作例子中,远程库 origin_gitosc 是使用 https 协议来进行推送的,每次推送更新都需要输入用户名和密码;远程库 origin 是使用 SSH 协议来进行代码推送的,需要自行添加秘钥文件,秘钥文件在生成的时候可以设置密码,有了密码后,每次执行 ”ssh-add“ 命令时,需要输入密码才可以被添加,也算是一种安全保护措施。

Welcome to Git (version 1.9.4-preview20140929)


Run 'git help git' to display the help index.
Run 'git help <command>' to display help for specific commands.

May@MAY-PC ~
$ cd Documents/

May@MAY-PC ~/Documents
$ cd GitHub/LMLPHP/

May@MAY-PC ~/Documents/GitHub/LMLPHP (develop)
$ git status
On branch develop
Your branch is up-to-date with 'origin/develop'.

nothing to commit, working directory clean

May@MAY-PC ~/Documents/GitHub/LMLPHP (develop)
$ git branch -av
* develop                       e6e8db4 modify default_theme_name constant name
  master                        e6e8db4 modify default_theme_name constant name
  remotes/origin/HEAD           -> origin/master
  remotes/origin/develop        e6e8db4 modify default_theme_name constant name
  remotes/origin/master         e6e8db4 modify default_theme_name constant name
  remotes/origin_gitosc/develop e6e8db4 modify default_theme_name constant name
  remotes/origin_gitosc/master  e6e8db4 modify default_theme_name constant name

May@MAY-PC ~/Documents/GitHub/LMLPHP (develop)
$ git pull origin develop
From github.com:leiminglin/LMLPHP
 * branch            develop    -> FETCH_HEAD
Already up-to-date.

May@MAY-PC ~/Documents/GitHub/LMLPHP (develop)
$ ls
LICENSE  README.md  lib  lml.min.php  lml.php  lmlphp_logo_200.png

May@MAY-PC ~/Documents/GitHub/LMLPHP (develop)
$ cat .git/config
[core]
        repositoryformatversion = 0
        filemode = false
        bare = false
        logallrefupdates = true
        symlinks = false
        ignorecase = true
        hideDotFiles = dotGitOnly
[remote "origin"]
        url = git@github.com:leiminglin/LMLPHP.git
        fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
        remote = origin
        merge = refs/heads/master
[branch "develop"]
        remote = origin
        merge = refs/heads/develop
[remote "origin_gitosc"]
        url = https://git.oschina.net/leiminglin/LMLPHP.git
        fetch = +refs/heads/*:refs/remotes/origin_gitosc/*

May@MAY-PC ~/Documents/GitHub/LMLPHP (develop)
$ eval `ssh-agent`
Agent pid 13436

May@MAY-PC ~/Documents/GitHub/LMLPHP (develop)
$ ssh-add ./../../../.ssh/github_rsa
Identity added: ./../../../.ssh/github_rsa (./../../../.ssh/github_rsa)

May@MAY-PC ~/Documents/GitHub/LMLPHP (develop)
$

PS :看来本博客迫切需要一个相关文章功能,除了后台可以自定义,程序自动寻找更好。

阅(63)评(0)查看评论


本文转载自:http://blog.lmlphp.com/archives/62

hosser
粉丝 193
博文 78
码字总数 4614
作品 3
徐汇
私信 提问
Windows下如何使用gitbash管理github

原址:https://blog.csdn.net/luosaosao/article/details/63684470 第一步:下载gitbash 很多人会问,为什么要用gitbash啊,我要学github啊,gitbash是什么啊。—大神会觉得,这个傻XXXX啊,...

onedotdot
2018/07/27
16
1
Git 学习记录--- Git 基本介绍、获取git仓库方法、创建分支

一. Git基本介绍 1.1 什么是Git? Git是一个版本控制系统(Version Control System) 1.2 什么是“版本控制系统”? 记录下所有文件的所有版本,可以有效地追踪文件的变化。当代码出错的时候...

薄暮凉年
2015/12/23
569
0
简单快速的上手使用gitbash

在实际的开始工作中,某些项目涉及到多人协作时,github的使用必不可少; 当小白新进入一家公司时,很有可能不会开启一个全新的项目,而是跟进公司现在正在做的项目,比如,我.... 在此设定下...

尘世如潮
2016/04/09
2.7K
3
Intellij IDEA 上传本地项目到Git

已经在单机环境下使用一段时间Git了,发现Intellij IDEA中的Git插件功能并不完善。 首先Intellij IDEA中Git本地仓库必须建立在当前项目文件夹下,其它自定义的位置不支持。 其次你无法使用I...

进阶的玄武
2015/07/28
0
0
Git管理工具对比(GitBash、EGit、SourceTree)

Git管理工具对比(GitBash、EGit、SourceTree) GitBash是采用命令行的方式对版本进行管理,功能最为灵活强大,但是由于需要手动输入希望修改的文件名,所以相对繁琐。 EGit是Eclipse的Git插...

万里虎
2014/12/08
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

RxJava进行单元测试的方式

@Test public void completeTask_retrievedTaskIsComplete() { // Given a new task in the persistent repository final Task newTask = new Task(TITLE, ""); ......

SuShine
3分钟前
1
0
正则表达式大全

检验手机号码 # 要求:手机号码必须为11位数字,以1开头,第二位为1或5或8。import redef verify_mobile(): mob = input("请输入手机号码:") ret = re.match(r"1[358]\d{9}", m......

彩色泡泡糖
7分钟前
1
0
QT之border-image属性

一、border-image的兼容性 border-image可以说是CSS3中的一员大将,将来一定会大放光彩,其应用潜力真的是非常的惊人。可惜目前支持的浏览器有限,仅Firefox3.5,chrome浏览器,Safari3+支持...

shzwork
7分钟前
2
0
Kubernetes Operator简易教程

1. 安装operator-sdk //安装 operator-sdk$ apt-get install operator-sdk.....$ operator-sdk versionoperator-sdk version: v0.7.0$ go versiongo version go1.11.4 darwin/amd64 2......

Robotcl_Blog
7分钟前
2
0
再谈DAG任务分解和Shuffle RDD

1、DagScheduler分析 DagScheduler功能主要是负责RDD的各个stage的分解和任务提交。Stage分解是从触发任务调度过程的finalStage开始倒推寻找父stage,如果父stage没有提交任务则循环提交缺失...

守望者之父
13分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部