Git:将现有本地存储库连接到现有远程存储库
这可能是非常基本的,但我还没有弄明白: 我有一个PHP项目在两台服务器上运行,让我们把它们称为Git:将现有本地存储库连接到现有远程存储库,git,github,git-remote,git-fetch,Git,Github,Git Remote,Git Fetch,这可能是非常基本的,但我还没有弄明白: 我有一个PHP项目在两台服务器上运行,让我们把它们称为Live和Staging 显然,两台服务器运行的是同一个项目,但有一些变化。 当项目进入我手中时,它不在Github上,所以这就是我现在首先要做的。 我设法在Github上创建了一个新的远程存储库,并将Live系统连接到它。(通过在Live上添加Github repo作为“源站”) git远程添加源https://github.com/path-to-repo/repo.git 因此,实时系统当前位于m
Live
和Staging
显然,两台服务器运行的是同一个项目,但有一些变化。
当项目进入我手中时,它不在Github上,所以这就是我现在首先要做的。
我设法在Github上创建了一个新的远程存储库,并将
Live
系统连接到它。(通过在
Live
上添加Github repo作为“源站”)git远程添加源https://github.com/path-to-repo/repo.git
因此,实时系统当前位于master
分支上,并且是最新的origin/master
,其历史记录为4次提交
现在,我也在尝试连接Staging
上的Github Repo
所以我做了一个
git init
git remote add origin https://github.com/path-to-repo/repo.git
git remote -v
origin https://github.com/path-to-repo/repo.git (fetch)
origin https://github.com/path-to-repo/repo.git (push)
git fetch
现在,当我执行git状态时,我看到repo仍处于初始提交状态,所有文件和文件夹都列为未跟踪:
root@staging-主机:/var/www/html#git状态
论分行行长
初始提交
未跟踪文件:(使用“git add…”包含在将要添加的内容中
(承诺的)
.htaccess
自述文件
_index.html
原料药/
应用程序/
composer.json
全球的/
index.php
package-lock.json
package.json
phpinfo.php
系统/
卖主/
看法/
如何检查本地更改与origin/master
我不想丢失任何本地更改,但也不想提交或推动任何更改
我需要先检查差异,然后再逐个文件决定提交什么和重置什么可能有更好的方法,但这应该可以工作
git添加。
git提交-m'tmp'
git差异磁头原点/主磁头
git重置——软头~1
您只需重置为检查差异而执行的提交即可可能有更好的方法,但这应该会起作用
git添加。
git提交-m'tmp'
git差异磁头原点/主磁头
git重置——软头~1
您只需重置为检查差异而执行的提交即可您的方法几乎是正确的。请查看您的命令:
git remote add origin https://github.com/path-to-repo/repo.git
这尝试将远程回购添加为源,但失败,因为它已经存在
跑
你会看到这是你的实时回购。换个名字,比如
git remote add staging https://github.com/path-to-repo/repo.git
然后它就会起作用。如果原点处于活动状态,而暂存处于暂存状态,则拉动、推动到暂存的操作如下:
git pull staging <branch>
在这种情况下,也不需要添加遥控器。你只需要复制回购协议,就像
git clone https://github.com/path-to-repo/repo.git
你的方法几乎是正确的。请查看您的命令:
git remote add origin https://github.com/path-to-repo/repo.git
这尝试将远程回购添加为源,但失败,因为它已经存在
跑
你会看到这是你的实时回购。换个名字,比如
git remote add staging https://github.com/path-to-repo/repo.git
然后它就会起作用。如果原点处于活动状态,而暂存处于暂存状态,则拉动、推动到暂存的操作如下:
git pull staging <branch>
在这种情况下,也不需要添加遥控器。你只需要复制回购协议,就像
git clone https://github.com/path-to-repo/repo.git
也许我现在没有正确地理解这一点,或者这只是一种错误的方式,但我目前尝试的是将实时和临时推拉到Github上的远程存储库,而不是彼此。当我运行一个
git remote-v
时,我得到了这个输出:origin(fetch)origin(push),我还将它添加到了我的原始帖子中。我基本上在实时系统和登台系统中都添加了远程回购作为原点。这在live上不是问题,因为当时origin是空的,我可以直接提交。@Chaz live和staging是两个独立的远程设备。您可以通过名称来识别远程设备。您想将live和staging都标识为源代码,但源代码不再标识它们。如果两者都是源代码,则不能通过git push origin master仅推送到其中一个。您需要通过不同的名称来识别它们。如果您想同时向/从两个应用程序中推/拉,那么可以为此编写一个shell脚本。但是一个遥控器应该是一个遥控器。我在那里设置这个遥控器的方式不是在某个地方作为遥控器添加live和staging。Staging和live是运行项目的服务器,github repo作为远程(origin)添加在这两个服务器上,因此它们可以向github推送/拉送,而不是从github推送/拉送other@Chaz我意识到我最初误解了你的处境。现在我想我明白你的问题了。相应地编辑了我的答案。当我要克隆到的文件夹中已有文件时,此操作是否有效?因为不幸的是,这就是这里的重点。我一直以为不是。但我还没试过,不幸的是现在不能试。但我稍后会检查。感谢可能我现在没有正确地理解这一点,或者这只是一种错误的方式,但我目前尝试的是将实时和临时推拉到Github上的远程存储库,而不是彼此。当我运行一个git remote-v
时,我得到了这个输出:origin(fetch)origin(push),我还将它添加到了我的原始帖子中。我基本上在实时系统和登台系统中都添加了远程回购作为原点。这在live上不是问题,因为当时origin是空的,我可以直接提交。@Chaz live和staging是两个独立的远程设备。您可以通过名称来识别远程设备。您想将live和staging都标识为源代码,但源代码不再标识它们。如果两者都是源代码,则不能通过git push origin master仅推送到其中一个。您需要通过不同的名称来识别它们。如果您想同时向/从两个应用程序中推/拉,那么可以为此编写一个shell脚本。但是一个遥控器应该是一个遥控器。我在那里设置这个遥控器的方式是不一样的