我想知道:
我需要将本地 SVN 存储库转换为 GIT。我知道如何将远程 SVN 存储库转换为 git,但是,我只有本地存储库;他们不再托管。我将如何将本地 SVN 存储库转换为 git?
我试过的是这样的:
git svn clone -s file://data/svn/repo/ /data/git/repo.git
错误是:
E: 'trunk' is not a complete URL and a separate URL is not specified
我最近购买了一台专用服务器,并且需要将多个存储库从源代码管理托管服务移动到它。在服务器管理方面没有太多经验,但是我不知道如何有效地组织它。我所寻求的——
不幸的是,我在 Google 上尝试的任何搜索词都会将我引导到商业托管解决方案,而不是指导我如何汇总自己的解决方案。我需要类似精简的托管解决方案,但不需要让用户能够创建自己的存储库。
关于从哪里开始研究的任何建议、教程或脚本解决方案?用于处理该问题的管理界面的开源解决方案(或至少对某些人来说是完美的...
我想弄清楚为什么在etckeeper提交后,我在重启时遇到了问题(由于这个伟大的事情已经解决了)。
我和 etckeeper 一起玩,git checkout some_commit_sha快速浏览了一下,然后git checkout master.
/etc在这些操作之后,我的文件权限似乎被破坏了。包括所有文件ssh_host_rsa_key passwd-, shadow-均rw-r--r--。我不知道 Git 不保存文件权限。
现在我修复了所有这些(我希望我没有错过任何东西)。
获得/etc.
我们刚刚将服务器配置移至 Git 存储库。因此,不应在任何存储库文件夹中进行任何更改。我在考虑如何设置一个 cron 作业来检查任何未提交的更改。
如何设置 cron 作业来检查 Git 存储库中的更改?
Grepinggit status命令的输出可能只是这样做。Grep 和 cron 工作不是我的强项。以下是一些示例输出git status:
将包含 git 存储库(例如/path/gitrepo/)的文件夹与已更改的文件保持一致:
$ git status
# On branch master
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: apache2/sites-enabled/000-default
#
# Untracked files:
# (use "git add <file>..." to include in what …Run Code Online (Sandbox Code Playgroud) 我设置了 etckeeper 并添加了文件/etc/etckeeper/commit.d/60github-push,以便将提交推送到 github。
[orschiro@thinkpad etc]$ sudo cat /etc/etckeeper/commit.d/60github-push
#!/bin/sh
set -e
if [ "$VCS" = git ] && [ -d .git ]; then
cd /etc/
git push origin master
fi
Run Code Online (Sandbox Code Playgroud)
但是,推送到 github 失败,因为 etckeeper 尝试以 root 身份推送。是否应该使用 sudo 不保留我的 git 用户帐户设置,包括我的 ~/.ssh 密钥?
[orschiro@thinkpad etc]$ sudo etckeeper commit "test"
[master de5971c] test
Author: orschiro <orschiro@thinkpad.(none)>
3 files changed, 2 insertions(+), 1 deletion(-)
rename etckeeper/{ => commit.d}/60github-push (100%)
create mode 100644 test
no such identity: /root/.ssh/id_rsa: No such …Run Code Online (Sandbox Code Playgroud) 我正在服务器上安装 gitolite3,使用 ssh 和 http pull/pushing/alltherest。在此过程中,会创建一个用户和组 gitolite3。
当我运行时:
$ ssh gitolite3@server info
Run Code Online (Sandbox Code Playgroud)
我得到了正确的 gitolite3 消息和 RW repo 信息。
问题是,我想要普通用户 git 而不是笨重的 gitolite3,而不会将其全部拆散。其他一些线程提到使用相同的 uid ang gid 创建用户 git,但这并没有给出与上面相同的结果。
当我登录时(使用传统的图形登录屏幕),有我常用的管理员用户,还有 gitolite3 用户名(但我不确定这是 gitolite3 还是我创建的 git 用户别名)。
如何创建 git 用户/替换 gitolite3 用户,以便 ssh git@server 信息与 gitolite3 一起使用?什么决定了用户何时可以使用登录屏幕登录,以及如何关闭它?
我刚刚第一次设置 Foreman 并且不确定如何将我的所有配置置于版本控制之下。我知道我可以将 Git 用于我安装在我的 Puppet master 上的每个模块,但更喜欢一个更全面的解决方案,它不仅包括模块,还包括与每个主机关联的类以及主机上设置的任何变量。任何建议以及相关的工作流程将不胜感激。如果相关,我确实将 GitLab 设置为现场的中央 Git 服务器,并计划很快设置一个 CI 服务器,例如 Jenkins。
我们已经设置了一个 EC2 构建服务器,并希望使用 SSH 密钥来克隆存储库。
采取的步骤:
cd ~/.ssh
ssh-keygen -t rsa
Run Code Online (Sandbox Code Playgroud)
创建的配置:
host bitbucket.org
HostName bitbucket.org
IdentityFile ~/.ssh/bitbucket_rsa
User git
Run Code Online (Sandbox Code Playgroud)
在位桶上加载公共 ssh 密钥:
ssh-rsa ...key ... ec2_user@ip-censored
什么时候:
git clone https://git@bitbucket.org/user/repo.git
Run Code Online (Sandbox Code Playgroud)
它要求输入密码。我们应该检查或做些什么来查看我们哪里出错了?
我正在使用 Amazon 的 Elastic Beanstalk 通过 Git 部署我的应用程序,并且我的 Git 中有子模块。当然,当我查看子模块数据应该在的目录时,什么都没有,因为子模块尚未初始化。
显然 Elastic Beanstalk 不支持子模块。这样对吗?如果是这样,我如何说服 Git 让我拥有子模块的功能,但在推送主 repo 时仍然上传子模块的所有代码?
我正在使用 node.js 所以我认为安装脚本可能是最好的选择