我试过跟着 how-set-up-your-own-private-git-server-linux和 private-remote-git-repositories-ubuntu-linode,但我仍然有问题.

我的本地环境是windows和我的远程linux.我有几个问题:

>在第一篇文章中,它描述了为服务器设置一个公共ssh密钥 – 我从来没有这样做,我不知道在哪里键入命令(甚至不知道本地或远程!!):ssh myuser @ server.com mkdir .ssh和scp〜/ .ssh / id_rsa.pub myuser@server.com:.ssh / authorized_keys
>在我本地的dev机器上应该运行msysgit?有没有替代,因为我安装的版本占用了1.4 GB!我从http://code.google.com/p/msysgit/downloads/list安装了msysgit-netinstall-1.7.4-preview20110204.exe

我试图跳过git用户和公钥,在远程机器上创建存储库,但是当我尝试git remote add origin ssh:// [username] @ [domain / ip / hostname] / srv / git / [project-名称]作为root用户说:fatal:不是git仓库(或任何父目录):.git

我不知道这是否应该在这里,或者如果最好迁移到不同的网站,但由于我可以帮助我继续回答.

我只是撇去你链接的文章.看起来他们都在处理通过ssh访问git服务器,这是我所关注的.

首先,在你的服务器上:

您需要在服务器上设置一个帐户,以便您可以登录.这可以是通用的git帐户,也可以是您自己的个人帐户.目前,我们假设您正在设置它与个人帐户配合使用.您想要做的是创建您的帐户,然后在该帐户(例如,在您的主目录中)可访问的位置创建git存储库.

mkdir myrepo.git
cd myrepo.git
git --bare init --shared=all

所以现在你在服务器上有一个git仓库.根据您正在使用的git客户端,您现在可能不需要混淆键.如果您的服务器上配置了SSH以允许密码登录,那么当需要与服务器进行交互时,您可能只需连接并输入密码即可.如果要设置键,您需要做的是生成一个ssh公钥.我不知道如何在Windows中执行此操作,但在linux中,您可以执行以下操作:

ssh-keygen -t rsa -b 1024

该命令将生成两个文件“id_rsa”和“id_rsa.pub”;您使用的任何工具也应该生成两个文件,一个公钥和一个私钥.它们可能具有不同的名称,但现在假设“id_rsa.pub”是您的公钥文件的名称.

您要将公钥复制到服务器,您可以使用scp,ftp或使用thumbdrive将其移动.无论哪种方式,一旦你得到它到服务器,它可以访问您的用户,登录作为您的用户在服务器上.您要将公钥添加到“authorized_hosts”文件中,因此在登录到服务器上的帐户后,请执行以下操作:

cd
mkdir .ssh
cat id_rsa.pub >> .ssh/authorized_hosts
rm id_rsa.pub

现在,从您的工作站,您需要配置您的ssh客户端以使用您生成的私钥.再次,我不知道如何在Windows上这样做,它可能会根据您使用的ssh客户端而有所不同,因此您需要在其他地方获取该信息.

接下来,您需要创建本地存储库,添加一些文件并进行提交.请注意,您无法克隆所做的远程存储库,因为没有任何内容.一旦您在本地做了一些提交,您需要将远程服务器设置在存储库中.

如果您使用git命令行工具,可以运行:

git remote add origin user@yourserver:myrepo.git

如果将存储库放在主目录以外的位置,请使用完整路径:

git remote add origin user@yourserver:/path/to/repo.git

请注意,您需要“.git”,因为您的目录名称具有“.git”作为名称的一部分.

如果您正在使用GUI工具,那么您只需编辑存储库的配置文件.这将在您的存储库的“.git / config”的顶层.你会想添加一些东西

[remote "origin"]
    url = user@yourserver:/path/to/repo.git
    fetch = +refs/heads/*:refs/remotes/origin/*

现在您的远程设备已配置,并且本地有一些提交,您可以将主分支推送到服务器.如果使用命令行使用:

git push origin master

或者,如果你在另一个分支上工作:

git push origin mybranch

如果您正在使用GUI前端,那么您需要查找该工具的文档,了解如何推送.

windows – 如何在linux上设置私有git服务器的更多相关文章

  1. 在Xcode中安装的git中禁用osxkeychain凭证帮助程序

    解决方法如果您的问题主要关注的是安全性,并且您希望每次都输入密码,那么我会接受钥匙串以适应您的目标>进入osx钥匙串应用程序,>如果您使用的是https,请查找服务器名称>通过单击更改其设置,并在选项卡“访问控制”标记“询问钥匙串密码”下>如果需要,请从列入白名单的应用程序列表中删除git-credential-osxkeychain应用程序.请注意,在Linux上,默认行为也是自动发送凭据.

  2. osx – 无法创建目录/ var / teamsserver

    OpenSSH_6.2p2,OSSLShim0.9.8r8Dec2011debug1:Readingconfigurationdata/etc/ssh_configdebug1:/etc/ssh_configline20:Applyingoptionsfor*debug1:Connectingto1.2.3.4[1.2.3.4]portPORT.debug1:Connectionestablished.Couldnotcreatedirectory‘/var/teamsserver/.ssh’.debug

  3. ios – Xcode Server 4.0 git从构建触发脚本推送

    我为一个托管在github上的项目安装了一个XcodeBot.我按照步骤和设置机器人来使用我现有的SSH密钥.验证成功,项目结算和建立.然后,我在预触发器操作中添加了一个shell脚本,它增加了plist中的版本,将其标记,并将该更改提交到github.但是当我尝试从shell脚本执行gitpush时,我得到:–推送到git@github.com:spex-app/spex-ios.git权限被拒

  4. xcode – 为什么Jenkins在我的Mac上运行不会连接到本地的git repo?

    我正在尝试使用Jenkins实现自动化构建,用于我的iOS项目.我添加了Git插件,但是一旦我尝试将git的URL放在项目的git配置中,它会在下面的屏幕截图中显示错误.这里Jenkins不能从repo克隆到其工作空间.解决方法在大多数情况下,gitbarerepo有扩展名.git我的意思是(其他)/test1看起来不正确,我认为应该是(其他)/test1.git在我的mac上有同样的错误.

  5. 哪些Xcode项目文件可以从我的git repo中排除?

    我正在开发一个iOS项目,并使用git进行版本控制.我正在与另一位开发人员合作.我应该保留哪些Xcode项目文件在repo中,哪些可以排除,这样不会对其他开发者产生负面影响?这里有一些非代码文件,git告诉我已被修改或添加…

  6. xcode – 不能推送到远程git存储库

    所以我一直在麻烦把我最近的提交到我在Bitbucket上设置的远程仓库.我最初使用Xcode,并且已经要求thisquestion,并建议使用终端来推送而不是Xcode.现在,我尝试了终端,但是并没有解决问题.但是当我尝试gitpush时,它确实给了我更详细的错误信息我是这些远程存储库的新手,并且Xcode上的一切都正常工作,所以如果您建议我在终端中执行某些操作,如果您描述了如何执行此操作,这将有

  7. ios – Xcode上传错误:无法打开ssh会话. (16)

    注意:我们终于上传了该应用程序,但是我们并没有真正解决这个问题,所以如果有人可以分享一些有关这个问题的宝贵意见或经验,我将不胜感激.我也检查了以下2个类似的问题,但这些没有帮助:>Erroruploadingiosapplicationtoitunesconnect“failedtoopensshsession(16)”>AppStoresubmission/distributionerror“f

  8. Xcode 4.5自动更改.xib文件

    由于我升级到Xcode4.5,我发现它会自动删除我访问的每个xib文件的一部分.这是一节:我几乎可以这样生活,但是当我再次访问该文件时,我发现还有更多的“自动”更改.他们变得更加多样,难以表征,所以我不会包括例子,除非我真的需要.我不明白这里发生了什么.我正在寻找两个答案之一:>有没有办法禁用这个?>为什么会发生这种情况,有没有办法强制Xcode将这些更改应用于所有xib文件,以便我可以做到这一点?

  9. ios – XCode中的源代码管理是一场噩梦 – 任何人都可以提供建议?

    使用Git与Xcode(4.3)是一个真正的噩梦.这是一个场景…我承诺我的变化–好的.我跳回主人拉动变更.突然间我得到:是吧?解决方法我只是添加这些文件到我的.gitignore文件.没有必要与其他开发人员分享.所以我有:在.gitignore中请注意,您链接的stackoverflow问题说不排除project.pbxproj,但它并不表示不排除*.xcworkspace.但是,我目前没有使用工作区功能.如果您使用工作区功能,则可能需要包含这些文件,但忽略xcuserdata文件.

  10. Xcode表示“未提交的更改”每当我尝试git拉或推

    我在我的项目中使用git,每当我尝试从Xcode中抽出时,我得到“未提交的更改”,并阻止我拉/推.我尝试提交并找到一个扩展名为*.xcuserstate的文件,每当我打开/滚动到Xcode中的任何项目文件时,这个文件被修改.这让我没有任何选择,只能做一个包含该文件的单一提交,该文件用无意义的提交填充git提交日志.这是有办法阻止这种行为吗?

随机推荐

  1. static – 在页面之间共享数据的最佳实践

    我想知道在UWP的页面之间发送像’selectedItem’等变量的最佳做法是什么?创建一个每个页面都知道的静态全局变量类是一个好主意吗?

  2. .net – 为Windows窗体控件提供百分比宽度/高度

    WindowsForm开发的新手,但在Web开发方面经验丰富.有没有办法为Windows窗体控件指定百分比宽度/高度,以便在用户调整窗口大小时扩展/缩小?当窗口调整大小时,可以编写代码来改变控件的宽度/高度,但我希望有更好的方法,比如在HTML/CSS中.在那儿?

  3. 使用Windows Azure查询表存储数据

    我需要使用特定帐户吗?>将应用程序部署到Azure服务后,如何查询数据?GoogleAppEngine有一个数据查看器/查询工具,Azure有类似的东西吗?>您可以看到的sqlExpressintance仅在开发结构中,并且一旦您表示没有等效,所以请小心使用它.>您可以尝试使用Linqpad查询表格.看看JamieThomson的thispost.

  4. windows – SetupDiGetClassDevs是否与文档中的设备实例ID一起使用?

    有没有更好的方法可以使用DBT_DEVICEARRIVAL事件中的数据获取设备的更多信息?您似乎必须指定DIGCF_ALLCLASSES标志以查找与给定设备实例ID匹配的所有类,或者指定ClassGuid并使用DIGCF_DEFAULT标志.这对我有用:带输出:

  5. Windows Live ID是OpenID提供商吗?

    不,WindowsLiveID不是OpenID提供商.他们使用专有协议.自从他们的“测试版”期结束以来,他们从未宣布计划继续它.

  6. 如果我在代码中进行了更改,是否需要重新安装Windows服务?

    我写了一个Windows服务并安装它.现在我对代码进行了一些更改并重新构建了解决方案.我还应该重新安装服务吗?不,只需停止它,替换文件,然后重新启动它.

  7. 带有双引号的字符串回显使用Windows批处理输出文件

    我正在尝试使用Windows批处理文件重写配置文件.我循环遍历文件的行并查找我想要用指定的新行替换的行.我有一个’函数’将行写入文件问题是%Text%是一个嵌入双引号的字符串.然后失败了.可能还有其他角色也会导致失败.如何才能使用配置文件中的所有文本?尝试将所有“在文本中替换为^”.^是转义字符,因此“将被视为常规字符你可以尝试以下方法:其他可能导致错误的字符是:

  8. .net – 将控制台应用程序转换为服务?

    我正在寻找不同的优势/劣势,将我们长期使用的控制台应用程序转换为Windows服务.我们为ActiveMQ使用了一个叫做java服务包装器的东西,我相信人们告诉我你可以用它包装任何东西.这并不是说你应该用它包装任何东西;我们遇到了这个问题.控制台应用程序是一个.NET控制台应用程序,默认情况下会将大量信息记录到控制台,尽管这是可配置的.任何推荐?我们应该在VisualStudio中将其重建为服务吗?我使用“-install”/“-uninstall”开关执行此操作.例如,seehere.

  9. windows – 捕获外部程序的STDOUT和STDERR *同时*它正在执行(Ruby)

    哦,我在Windows上:-(实际上,它比我想象的要简单,这看起来很完美:…是的,它适用于Windows!

  10. windows – 当我试图批量打印变量时,为什么我得到“Echo is on”

    我想要执行一个简单的批处理文件脚本:当我在XP中运行时,它给了我预期的输出,但是当我在Vista或Windows7中运行它时,我在尝试打印值时得到“EchoisOn”.以下是程序的输出:摆脱集合表达式中的空格.等号(=)的两侧可以并且应该没有空格BTW:我通常在@echo关闭的情况下启动所有批处理文件,并以@echo结束它们,所以我可以避免将代码与批处理文件的输出混合.它只是使您的批处理文件输出更好,更清洁.

返回
顶部