当我需要一些基本的VCS功能时,我在这里和那里使用git,但我还没有完全理解Git中某些东西是如何工作的.
与SVN不同,Git是分散的,因此我可以在一个地方启动一个存储库并在本地使用它,然后将我的更改推送到另一个存储库,至少这是我理解它的方式.
我想知道一些关键的事情:
如果我想在我的本地机器上创建一个新的存储库,而不是push(?)它到服务器(它已经有或没有这个repo),需要采取什么行动?
我是否需要Web服务器与远程回购交互?
如何从/向我有SSH访问权限的服务器推送/拉出?
希望答案很简短并且重点 - 人工页面很棒,因为他们并不总是传达他们需要的东西,有时候会有我不需要的信息.所以我希望你能原谅我和我的问题,即使之前被多次询问/回答.
在此之前,了解如何为服务器配置ssh访问(通常,不仅仅是git),以便您可以运行如下操作:
ssh myserver uptime
Run Code Online (Sandbox Code Playgroud)
让它运行远程命令而不提示您输入密码.这将使您的生活git更加愉快.
如果我想在我的本地机器上创建一个新的存储库,而不是将它(或)推送到服务器(它已经或者没有这个存储库),那么需要采取哪些措施?
在远程服务器上:
创建目标存储库:
$ mkdir -p path/to/repo.git
$ cd path/to/repo.git
$ git init --bare
Run Code Online (Sandbox Code Playgroud)在您的本地系统上:
创建您的存储库......
$ mkdir myrepo
$ cd myrepo
$ git init
...并提交一些更改.
$ git add a-file-i-editied
$ git commit -m 'this is a change'
添加远程 - 即对远程存储库的引用:
$ git remote add origin you@yourserver:path/to/repo.git
当你为你的远程服务器上的用户名和yourserver是远程服务器的主机名(或IP地址).
将更改推送到远程存储库:
$ git push origin master
在哪里起源的名称是你在上一步中你的遥控器,并且主是你推分支.
我是否需要Web服务器与远程回购交互?
请注意上一个示例中缺少任何Web服务器.Git 可以
通过http/https运行,但它通常用于ssh.Git还提供了一个本机git协议,可用于提供对存储库的匿名只读访问; 在git-daemon
实现了该协议.
如何从/向我有SSH访问权限的服务器推送/拉出?
这几乎就是我提供的示例,但如果您想了解任何步骤中的更多细节,请告诉我.