我有一个带有ssh服务器设置的Windows 2003机器.我在本地和服务器上安装了msysgit(git版本1.6.2).
服务器具有以下我的存储库的绝对路径:
e:\vc\git\myrepo.git
Run Code Online (Sandbox Code Playgroud)
当用户登录时,他/她将被放入以下工作目录:
e:\vc\git\
Run Code Online (Sandbox Code Playgroud)
在我的开发机器上运行以下cmd时:
git clone ssh://myuser@myip/myrepo.git testrepo
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
fatal: ''/myrepo.git'' does not appear to be a git repository
Run Code Online (Sandbox Code Playgroud)
根据我的ssh日志,似乎git正在服务器上执行此cmd:
'cmd.exe /c git-upload-pack '/myrepo.git''
Run Code Online (Sandbox Code Playgroud)
在本地(在服务器上)执行该命令失败的原因相同.我认为这个问题与git前缀为'/'的路径有关.我怎么告诉git不要这样做?这应该有用吗?
注意:git-upload-pack正在运行,因为我在路径中添加了\ gitinstallpath\libexec\git-core.显然这是一个错误,将来会修复,这是我的工作.
作为我在svn到git迁移后关于不可用分支的问题的后续跟踪,我有一个不同的问题:我无法将新分支推送到我的中央Git存储库.
$ git clone ssh://server/opt/git/our_app.git
$ cd our_app
$ git branch my-test-branch
$ git checkout my-test-branch
$ echo test > test.txt
$ git add test.txt
$ git commit test.txt -m "test commit"
[master ed81ec0] test commit
1 files changed, 1 insertions(+), 0 deletions(-)
create mode 100644 test.txt
$ git push
Everything up-to-date
Run Code Online (Sandbox Code Playgroud)
所以,这不会将我的分支推送到服务器.一位同事建议我查看我的.git/config,看起来像这样:
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = ssh://server/opt/git/our_app.git
[branch …Run Code Online (Sandbox Code Playgroud) 我最近开始研究一个使用git存储和ruby作为前端的项目.我的脚本的第一个版本使用了ruby-git,虽然非常简单,但还可以.当我需要使用我的提交和日志做更具体的工作时,我建议我转移到砂砾.然而,我早期的路障似乎无法克隆远程存储库.我使用Repository类找到的所有示例都创建了一个本地存储库并在源代码中搜索我发现Grit的克隆方法是未定义的.是什么赋予了?
这是我的第一个StackOverflow问题,所以提前感谢任何帮助.
pip包管理器允许从各种VCS安装,包括git:
Pip目前支持通过git,git + http和git + ssh进行克隆:
Run Code Online (Sandbox Code Playgroud)-e git://git.myproject.org/MyProject.git#egg=MyProject -e git+http://git.myproject.org/MyProject/#egg=MyProject -e git+ssh://git@myproject.org/MyProject/#egg=MyProject传递分支名称,提交哈希或标记名称也是可能的:
Run Code Online (Sandbox Code Playgroud)-e git://git.myproject.org/MyProject.git@master#egg=MyProject -e git://git.myproject.org/MyProject.git@v1.0#egg=MyProject -e git://git.myproject.org/MyProject.git@da39a3ee5e6b4b0d3255bfef95601890afd80709#egg=MyProject
当包很小时,这很好,但是当包很大时(例如Django),它变得非常慢.如果我只需要最后一次提交master分支,那么我可以使用--depth 1参数进行git clone.
在没有完整的回购历史的情况下,是否有可能只获得某个提交?至少从github?
对于我的项目,我github在两台计算机(比如A,B)上保留了一个在线存储库和本地存储库,在那里我编写代码并运行测试,还在其他三台计算机(比如C,D,E)上运行测试.
现在,只要我想在C,D,E上下载更新的代码并且执行起来就git pull origin $someBranch行不通,就会发生几次冲突,这可能是由于我在本地源代码上进行的一些小修改只是为了测试目的,我不想保留.
在这种情况下我该怎么办?我应该总是这样做git clone $URLofMyRepository还是不那么激进?
我已经使用该命令在ubuntu中安装了Git
sudo apt-get install git-core
sudo apt-get install git
Run Code Online (Sandbox Code Playgroud)
在此之后,我尝试使用该命令安装node.js.
git clone git://github.com/ry/node.git
Run Code Online (Sandbox Code Playgroud)
在这一步,它说
Cloning into node..
Run Code Online (Sandbox Code Playgroud)
并且需要很长时间而且不会返回.
我在这里错过了什么吗?
我尝试将svn repo克隆到git,但是一些分支在svn根目录中,如下所示.
我试过了
$ git clone svn://url/svn-root -T trunk -b branches -b branch1 -b branch2
Run Code Online (Sandbox Code Playgroud)
和
$ git clone svn://url/svn-root -T trunk -b branches -b .
Run Code Online (Sandbox Code Playgroud)
两者都未能克隆branch1和branch2正确.请帮忙.
svn-root
??? branch1
??? branch2
??? branches
? ??? branch3
? ??? branch4
??? trunk
Run Code Online (Sandbox Code Playgroud) 在开发应用程序的过程中,我希望在某个方面能够单独复制我的工作,以便进行多项更改.这些变化并不意味着承诺!它只是在玩耍,尝试各种可能性.
这样做的" 最佳 "方式是什么?我找到了以下可能性,但是想得到那些对我有更多git经验的人的建议:
git clone将存储库的副本放到不同的目录中,并使用它来玩.cp -r把我当前的git工作目录改为新的.在情况(1)中,git知道克隆,rebase如果我真的想要,我可以稍后,但我不太可能做到这一点.
在这种情况下,有什么我应该知道的,这使解决方案(1)或(2)更好吗?或者有更好的方法吗?
为什么人们有这个问题?
$ git clone --recursive git@github.com:acani/Chats.git克隆到'聊天'...权限被拒绝(公钥).致命:无法从远程存储库读取.
请确保您具有正确的访问权限并且存储库存在.
https://github.com/acani/Chats/issues/53#issuecomment-118014684
我已经阅读了一些答案,说要将子模块URL从SSH更改为HTTP,但为什么我必须这样做.我不想那样做.我想保留SSH,这样如果我想推送,我就不必在终端输入我的用户名和密码.每个人都可以很好地克隆SSH URL,那么他们为什么不能将它作为子模块递归克隆呢?
我在VisualStudio中创建了一个asp.net mvc项目,并将其发布在Github中。我注意到默认情况下该文件被忽略。ApplicationInsights.config
现在,由于缺少此文件,因此无法在克隆时编译项目。之后,我将其手动添加到存储库中,一切按预期进行。
为什么默认情况下会忽略此文件?将此文件添加到存储库是不好的做法吗?