LMLPHP后院

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

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

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

这里将不使用 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 :看来本博客迫切需要一个相关文章功能,除了后台可以自定义,程序自动寻找更好。

相关文章
2019-10-20 11:58:20 1571543900 0.013500