git将更改分别推送到两个远程设备
如何在本地计算机上有一个工作目录,并将通道分别推送到两个不同的远程计算机 我已经在我的服务器git将更改分别推送到两个远程设备,git,Git,如何在本地计算机上有一个工作目录,并将通道分别推送到两个不同的远程计算机 我已经在我的服务器dev和main上设置了两个git存储库。每当我在我的机器上进行更改时,我都希望将更改推送到dev或main 仅供参考,我正在使用git部署我的代码。(我按照说明进行了设置。)我有一个网站,我想先将更改推送到dev上,我的客户可以在那里查看。如果更改看起来正常,那么我想将更改推送到main,它将部署更改 以下是我迄今为止所做的工作 cd到本地计算机上的项目目录 git init git远程添加开发me@m
dev
和main
上设置了两个git存储库。每当我在我的机器上进行更改时,我都希望将更改推送到dev
或main
仅供参考,我正在使用git部署我的代码。(我按照说明进行了设置。)我有一个网站,我想先将更改推送到dev
上,我的客户可以在那里查看。如果更改看起来正常,那么我想将更改推送到main
,它将部署更改
以下是我迄今为止所做的工作
git init
git远程添加开发me@myserver.com:/var/git/dev.git
git远程添加主me@myserver.com:/var/git/main.git
git push dev master
)时,会出现以下错误
To me@myserver.com:/var/git/dev.git
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'me@myserver.com:/var/git/dev.git'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes (e.g. 'git pull') before pushing again. See the
'Note about fast-forwards' section of 'git push --help' for details.
当我做git pull时,我得到
fatal: No remote repository specified. Please, specify either a URL or a
remote name from which new revisions should be fetched.
我想我还不了解git的一些基础知识。有人能帮我吗?您需要执行错误所述的大部分操作:指定远程存储库: 这将
fetch
和merge
从dev
获取最新的更改。一旦您解决了任何合并冲突,您就可以干净地推送
:
git push dev master
一个
pull
是一个fetch
,后跟一个merge。
执行提取时
需要指定要提取的远程设备,因此请尝试
git pull dev
或
请注意,保持对不同回购的推送是很棘手的。更好的方法是为每个分支设置一个分支(使用默认远程),并在本地处理合并
git签出-b主/主
git签出-b dev/master
您的工作周期将有点像:
<do some work on master>
git checkout -b dev
git pull
git merge master (Or the specific commits you want).
git push
<get client to approve, assuming he does>
git checkout -b main
git pull
git merge dev
git push
<go back to master>
git checkout -b master
git签出-b开发
吉特拉力
git合并主机(或您想要的特定提交)。
git推送
git签出-b主
吉特拉力
git合并开发
git推送
git签出-b主控
查找Git手册中如何处理合并特定的提交。
撇开:考虑使用泛型<代码> git拉< /代码>。谢谢。我必须做git-pull-dev-master
。但是如果我尝试将更改推送到dev或main,我会得到与上面相同的错误。谢谢。我正在使用git部署我的代码。我有一个网站,我想把更改首先推给dev,我的客户可以在那里查看。如果更改看起来正常,那么我想将更改推送到main,main将部署更改。对于分支,我不确定我的服务器上是否可以有两个不同的目录。使用这种方法,您不会有多个目录。您只有一个工作目录,所有更改都是您当前的目标分支。那么,是否可以在单独的目录中有一个工作目录和两个git repositoreis?
git pull main
<do some work on master>
git checkout -b dev
git pull
git merge master (Or the specific commits you want).
git push
<get client to approve, assuming he does>
git checkout -b main
git pull
git merge dev
git push
<go back to master>
git checkout -b master