我对Git比较陌生,但我发现在家工作很容易,我想在我们的项目存储在Svn存储库中的工作中使用它.不幸的是,存储库略微不标准,我无法克隆它们.当然,它们都有trunk,branches /和tags /,但是在命中实际项目目录之前,branch /和tags /都有子目录:
trunk/
branches/maintenance/release1
branches/maintenance/release2
...
branches/development/feature1
branches/development/feature2
...
tags/build/build1
tags/build/build2
...
tags/release/release1
tags/release/release2
Run Code Online (Sandbox Code Playgroud)
克隆后:
$ git svn clone -s --prefix=svn/ https://mydomain.com/svnproject
$ git branch -r
development
development@1340
maintenance
maintenance@1340
tags/build
tags/build@1340
tags/release
tags/release@1340
trunk
trunk@1340
Run Code Online (Sandbox Code Playgroud)
我没有得到任何实际的项目分支或标签.我实际上需要能够在主干,一个维护分支和一个开发分支上工作.我已经尝试过这种方法,除了修改配置的几个黑客,但没有什么对我有用.
有什么方法可以将我的非标准Svn项目的关键组件放到本地git存储库中,以便我可以轻松地在它们之间移动?
非常感谢.
更新:我应该补充一点,我不能批量切换到Git(尚).还有其他团队成员参与和国际存在.转型的后勤工作比我更愿意承担,直到我对Git更加满意; 正如我所提到的,我还是很新的.我几乎没有触及其功能的表面.
我有一个主git存储库A,我们在主项目的子目录中使用另一个git存储库B中的源代码.现在最好在这个使用过的子目录中的A存储库中检出B存储库.如果其他人然后克隆了存储库,他当然应该获得我们的主存储库A并在其中自动获取B存储库.
让我可视化目录结构:
+ main_repository - the root directory of the main Repository
+ src - directory containing the source
+ foreignRepo - this should be the root directory of another git repo
+ binaries
+ other
这必须在远程存储库中也是已知的,只是本地副本对我没有帮助,因为其他人检查这一点并且必须能够编译所有的东西.
我在Javascript中有一个简单的对象(或哈希):
var settings = {
link: 'http://example.com',
photo: 'http://photos.com/me.jpg'
};
Run Code Online (Sandbox Code Playgroud)
我需要它的副本.是否有一种settings.clone()类型方法会给我另一个具有相同属性的对象?我正在使用jQuery,很高兴使用jQuery实用程序方法(如果存在).
给定一个数据结构(例如散列哈希),什么是干净/推荐的方式来制作深层副本以供立即使用?假设合理的情况,数据不是特别大,没有复杂的循环,可读性/可维护性等.不惜一切代价比速度更重要.
我知道我可以使用Storable,Clone,Clone :: More,Clone :: Fast,Data :: Dumper等.目前的最佳做法是什么?
我在我的主PC上有这个git repo"c:/ xampp/htdocs/**",其IP地址是192.168.0.6.现在我想从我的主PC上的Vmware Player上运行的ubuntu-server git克隆这个repo.
我做到了
git clone \\192.168.0.6\c:\xampp\htdocs\****
Run Code Online (Sandbox Code Playgroud)
和
git clone //192.168.0.6/c:/xampp/htdocs/****
Run Code Online (Sandbox Code Playgroud)
来自ubuntu-server并且都没有工作.
fatal: could not create work tree dir '****'.: Permission denied
Run Code Online (Sandbox Code Playgroud)
我错了什么?我该怎么办?
假设我有一节课:
class obj
{
int a;
int b;
}
Run Code Online (Sandbox Code Playgroud)
然后我有这个代码:
obj myobj = new obj(){ a=1, b=2}
obj myobj2 = myobj;
Run Code Online (Sandbox Code Playgroud)
现在上面的代码引用了第一个obj.我想要的是myobj2指副本中myobj没有反映在原文中的副本.我搜索了SO,到目前为止解决方案似乎很复杂.有没有更简单的方法来做到这一点.我正在使用.net 4.5
几天前,我回答了一个关于SO 的有趣问题HashSet<T>.一个可能的解决方案涉及克隆hashset,在我的回答中我建议做这样的事情:
HashSet<int> original = ...
HashSet<int> clone = new HashSet<int>(original);
Run Code Online (Sandbox Code Playgroud)
虽然这种方法非常简单,但我怀疑它的效率非常低:新构造函数HashSet<T>需要单独添加原始hashset中的每个项目,并检查它是否已经存在.这显然是浪费时间:因为源集合是a ISet<T>,所以保证不包含重复项.应该有办法利用这些知识......
理想情况下,HashSet<T>应该实施ICloneable,但遗憾的是并非如此.我还检查了Reflector,看看如果HashSet<T>源集合是一个哈希集,构造函数是否做了特定的事情,但事实并非如此.它可能可以通过在私有字段上使用反射来完成,但这将是一个丑陋的黑客......
那么,有人提出了一个更有效地克隆哈希集的聪明解决方案吗?
(请注意,这个问题纯粹是理论上的,我不需要在真实的程序中这样做)
我有Base派生的基类Derived1,Derived2和Derived3.
我为其中一个派生类构建了一个实例,我将其存储为Base* a.我现在需要制作一个我将存储的对象的深层副本Base* b.
据我所知,复制类的正常方法是使用复制构造函数并重载operator=.但是,因为我不知道是否a是类型Derived1,Derived2或者Derived3,我想不出使用复制构造函数的方法operator=.我能想到的唯一方法是干净利落地完成这项工作:
class Base
{
public:
virtual Base* Clone() = 0;
};
Run Code Online (Sandbox Code Playgroud)
和Clone派生类中的实现如下:
class Derivedn : public Base
{
public:
Base* Clone()
{
Derived1* ret = new Derived1;
copy all the data members
}
};
Run Code Online (Sandbox Code Playgroud)
Java倾向于使用Clone相当多的C++方式更多吗?
我有以下内容,我需要在 Windows 终端命令提示符或 linux 中克隆存储库。
我试过:
git clone git@xxxxx.com:xxx/xxx/git
Run Code Online (Sandbox Code Playgroud)
我得到
Permission denied(public key)
Couldn't read from remote repository
Run Code Online (Sandbox Code Playgroud)
还尝试将 URL 更改为:
git clone https://xxxxx.com:xxx/xxx/git
Run Code Online (Sandbox Code Playgroud) 我正在研究SVN上的一个项目.然而,我将无法访问互联网几天,并将继续我的项目.
有没有办法在我的本地机器上克隆存储库,提交对它的更改,当我获得对互联网的访问时,将它们"推"到共享存储库中?在这里考虑Mercurial,是否值得完全迁移?!
clone ×10
git ×4
repository ×3
.net ×2
svn ×2
c# ×1
c++ ×1
copy ×1
directory ×1
git-svn ×1
hashset ×1
javascript ×1
jquery ×1
lan ×1
local ×1
offline ×1
performance ×1
perl ×1
subdirectory ×1
windows ×1