当我需要一些基本的VCS功能时,我在这里和那里使用git,但我还没有完全理解Git中某些东西是如何工作的。
与SVN不同,Git是分散的,因此我可以在一个地方启动一个存储库并在本地使用它,然后将我的更改推送到另一个存储库,至少这是我理解它的方式。我想知道一些关键的事情:
如果我想在我的本地计算机上创建一个新的存储库,而不是push
(?)它到服务器(它已经或者没有这个存储库),有什么动作需要的?
我是否需要网络服务器与远程回购交互?
如何从/向我有SSH访问权限的服务器推送/拉出?
希望回复很简短并且重点 - 人工页面很棒,因为他们并不总是传达他们需要的东西,有时候会有我不需要的信息。所以我希望你能原谅我和我的问题,即使它之前被多次询问/回答。
答案 0 :(得分:9)
在其他任何事情之前,了解如何配置ssh访问(在
一般而言,不只是git
}到您的服务器,这样您就可以运行
类似的东西:
ssh myserver uptime
让它运行远程命令而不提示你输入
密码。这将使你git
的生活更加愉快。
如果我想在本地计算机上创建一个新的存储库,而不是 将(?)推送到服务器(它有或没有这个回购 已经),需要采取什么行动?
在远程服务器上:
创建目标存储库:
$ mkdir -p path/to/repo.git
$ cd path/to/repo.git
$ git init --bare
在您的本地系统上:
创建您的存储库......
$ 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
你是你远程服务器上的用户ID,而你的是 远程服务器的主机名(或IP地址)。
将您的更改推送到远程存储库:
$ git push origin master
origin 的位置是前一个遥控器的名称 步骤, master 是您正在推动的分支。
我是否需要网络服务器与远程回购交互?
请注意上一个示例中缺少任何Web服务器。 Git 可以
通过http / https运行,但它通常用于ssh。 Git也
提供可用于提供的本机git协议
对存储库的匿名只读访问; git-daemon
实现这个协议。
如何从/向我有SSH访问权限的服务器推送/拉出?
这几乎就是我提供的例子,但如果你,请告诉我 想要在任何步骤中获得更多细节。
答案 1 :(得分:1)
你在问题中提出的问题恰好是Git和Github最基本的方面。让我引导您完成所要求的确切步骤。
1)要创建新的git仓库,请使用终端(或操作系统的其他等效程序)/文件夹中的Open Terminal导航到项目文件夹,然后键入以下命令
git init
这会使用空的git存储库初始化您的项目。
您现在可以继续对项目进行更改,并在单个提交中记录这些更改。以下是发布提交的方式
git commit -m "YOUR COMMIT MESSAGE"
要将您的repo推送到github /任何其他git托管服务,首先需要添加远程存储库URL,如下所示
$ git remote add origin you@yourserver_url.git
现在已经准备好了。发出以下命令
$ git push origin master
2)您是否需要服务器与Git进行交互
Eli已经很好地回答了这个问题,但总结一下。不,你没有。大多数人使用像Github,Bitbucket,Gitlab等现有服务来托管他们的回购,在这种情况下,您只需要使用远程URL与远程仓库进行交互。
3)如何从远程仓库推/拉?
首先,如果它是私人的,你需要访问回购(如果它不是你的好去)。接下来获取repo的URL,它应该看起来像这样
https://github.com/YOUR_USERNAME/YOUR_PROJECT.git (This URL example is from github)
接下来,您需要将其克隆到本地计算机,如下所示
git clone https://github.com/YOUR_USERNAME/YOUR_PROJECT.git
现在您已克隆它,进行必要的更改,然后使用我在下面提到的命令将其推回。
版本控制的方式多于基础知识。如果您想了解更多信息,可以参考以学习基础知识的交互式网站try.github.io或查看我在同一篇文章中撰写的这篇文章,它应该可以帮助您入门。