我是git的新手,试图绕过它。
因此,我正在本地开发一个简单的网站,并使用git对其进行跟踪,并希望将面向公众的服务器上的远程仓库作为实时站点,随时可以将master分支推送到该站点。
我认为以下方法会起作用,但无效。
公共服务器,我这样做:
/home/mysite/git init --bare
本地(开发机器),我这样做:
git init
git add index.html (contains hello world)
git commit -am "initial commit"
git remote add website ssh://mysiteuser@mysite:myport
git remote (outputs: website)
现在我要将其发布到“网站”
git push website
我得到:
fatal: The current branch master has no upstream branch.
To push the current branch and set the remote as upstream, use
git push --set-upstream website master
所以我尝试:
git push --set-upstream网站管理员
我得到:
fatal: No path specified. See 'man git-pull' for valid url syntax
我看着男人git pull,对我来说没什么亮面的。
我这样做是否正确,但在push命令中缺少某些内容?还是我误解了一些更基本的东西。
TIA!
答案 0 :(得分:0)
这很简单,请按照以下小步骤进行操作:
现在创建一个项目文件夹 $ mkdir project.git
$ cd项目并执行$ git init --bare 假设这个project.git文件夹位于您的ip上,其地址位于home_folder / workspace / project.git,forexec2-/home/ubuntu/workspace/project.git
现在在您的本地计算机上,$cd
进入要推送到git的项目文件夹,执行以下命令:
git init .
git remote add origin username@189.14.666.666:/home/ubuntu/workspace/project.git
git add .
git commit -m "Initial commit"
下面是可选命令,但是发现它是建议的,因为我正在尝试设置相同的东西
git config --global remote.origin.receivepack "git receive-pack"
git pull origin master
git push origin master
这应该工作正常,并将本地代码推送到远程git存储库。
要检查远程获取URL,cd project_folder / .git和cat配置,这将提供用于拉入和推入操作的远程URL。
您还可以使用另一种方法,在git上创建project.git文件夹之后,克隆项目并将整个内容复制到该文件夹中。提交更改,并且更改方法应该相同。克隆时,请确保您具有访问权限,或者该密钥是用于部署的远程服务器的秘密密钥。
答案 1 :(得分:0)
我怀疑那些试图帮助我的好人误解了我最初的问题。重申一遍-我想在本地拥有开发仓库,当我“推送”它时,它会自动更新Web服务器上的文件,以使网站项目随心所欲地发布。
这就是我的做法...
远程(Web服务器)上
mkdir website
cd website
git init
// here's the clever bit!
git config receive.denyCurrentBranch updateInstead
(最后一行有两件事。它阻止远程存储库抱怨已签出分支的更新-并且也立即将其签出。其他常用方法添加了一个“钩子”来完成后一部分的过程。)
关于当地发展(我的笔记本电脑)
cd ~/website-dev-folder
git init
git remote add website ssh://my_user_name@mysever.com:my_port/home/website
git add some_file.html
git commit -m "initial commit"
git push -u website master
此后,在完成任何本地更改并将其合并到master中之后,要实时发布master分支,这很简单:
git push