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
,它将部署更改

以下是我迄今为止所做的工作

  • cd到本地计算机上的项目目录
  • git init
  • git远程添加开发me@myserver.com:/var/git/dev.git
  • git远程添加主me@myserver.com:/var/git/main.git
  • 但是,当我进行更改并尝试推送到任何一个repo(
    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