我会在您的服务器上为您的prod,dev和test目录的父目录(进一步称为parent_path
)创建回购站。
首先,ssh到你的服务器 - ssh [email protected]
,然后cd到parent_path
- 然后
mkdir test.git
cd test.git
git init --bare
然后,添加一个后收到钩来复制你的codez您相应的目录,如:
echo "#!/bin/sh
GIT_WORK_TREE=../test_directory/ git checkout -f" >> hooks/post-receive
哦,让钩可执行文件chmod +x hooks/post-receive
做那dev.git
和prod.git
(注意在post-receive hook中提到正确的目录 - 这是你的域名指向的目录)。
完成现在,回到地方 - 添加这些作为遥控器:
git remote add test ssh://[email protected]/parent_path/test.git
git remote add dev ssh://[email protected]/parent_path/dev.git
git remote add prod ssh://[email protected]/parent_path/prod.git
繁荣,你现在需要做的是检查你想要的分支,并推至相应的遥控器。
嗨,如果我只有一个遥控器,这可以工作。如果我有多个遥控器,则会出现错误。以下是输出。 'System $ git push remote-dev development Counting objects:1718,done。 增量压缩使用多达2个线程。 压缩对象:100%(1223/1223),完成。 写作对象:100%(1718/1718),23.62 MiB |完成111.00 KiB/s。 总计1718(增量509),再利用1651(三角洲446) 远程:致命的:你是在一个分支尚未出生 为SSH://aws/~/fams-dev.git * [新的分支]开发 - > development' – pogo
以下是我的.git/config文件 '系统$猫配置 [核心] \t repositoryformatversion = 0 \t FILEMODE =真 \t logallrefupdates =真 \t precomposeunicode =真 [远程“起源”] \t URL = HTTPS://[email protected]/fams/fams.git \t取= +参/头/ *:参/遥控器/来源/ * [分支 “主”] \t远程=原点 \t合并=参/头/主 [分支 “发展”] \t远程=原点 \t合并=参/头/发展 [分支 “分段”] \t远程=原点 \t合并=参/头/分期 [remote“remote-dev”] \t url = ssh:// aws /〜/ fams-dev .git \t fetch = + refs/heads/*:refs/remotes/remote-dev/*' – pogo
我能够将主分支成功推送到任何文件夹。我认为问题在于,当我执行git init时,git目录中没有开发分支,因此我无法推动开发分支。 – pogo