我可以告诉git忽略修改(删除)但不应该提交的文件吗? 情况是,我有一个包含我根本不感兴趣的东西的子目录,所以我删除了它,以防止它显示在自动完成等(在IDE中)。 但现在,如果我添加该文件夹到.gitignore,没有任何更改,所有的东西都显示为删除git状态。 有没有办法让git忽略它? (或者,因为我使用的是git-svn,我可以将更改提交到本地git,并确保它们不会传递到svn repo?)
我使用git-svn,我注意到,当我必须在执行git svn rebase之后修复合并冲突时,例如git checkout的–ours和–theirs选项的含义是相反的。 也就是说,如果有冲突,我想保留来自SVN服务器的版本并丢弃我在本地所做的更改,那么当我期望它是theirs时候,我必须使用ours 。 这是为什么? 例: mkdir test cd test svnadmin create svnrepo svn co file://$PWD/svnrepo svnwc cd svnwc echo foo > test.txt svn add test.txt svn ci -m 'svn commit 1' cd .. git svn clone file://$PWD/svnrepo gitwc cd svnwc echo bar > test.txt svn ci -m 'svn commit 2' cd .. […]
问题 你如何从一个Subversion版本库创build一个git-svn的浅拷贝,也就是说,你如何只提取最后三个版本? 如果使用选项–depth , git clone命令可以从Git存储库获取最后n个版本,也就是说,您可以获取存储库的浅表副本。 例: git clone –depth 3 git://some/repo myshallowcopyrepo 有没有类似的选项git-svn? 到目前为止,我的发现 到目前为止,我只find了-rN选项,其中N是要修改的版本。 例: git svn clone -rN svn://some/repo 根据文档可以使用-r $ REVNUMBER:HEAD。 我尝试了以下获得最后3个返回错误消息的修订。 $ git svn clone –prefix=svn/ -s -rHEAD~3:HEAD http://some/svn/repo . revision argument: HEAD~3:HEAD not understood by git-svn 所以我用第三个534的最后一个修订版的实际数字replace了HEAD〜3。这个工作,但是这需要我先计算出第三个修订版本,但是最后一个修订版本。 $ git svn clone –prefix=svn/ -s -r534:HEAD http://some/svn/repo . 文档 混帐克隆 GIT-SVN
我一直在Git中做所有的工作,然后推到GitHub上。 我对软件和网站都非常满意,现在我不想改变我的工作方式。 我的博士顾问要求所有学生保持在大学托pipe的SVN存储库中工作。 我已经发现了大量的文档和教程,将现有的SVN回购下拉到git中,但没有关于推送一个新的SVN回购的git回购。 我希望有一个办法可以做到这一点,git-svn和一个新的分支和重新装订和所有这些美好的条件的组合,但我是一个git新手,并没有任何他们的信心。 然后,我想运行一些命令,以便在我select时向SVN回购提交提交,我希望继续使用Git,并且让SVN回购镜像Git中的内容。 如果这有什么不同,我将成为唯一一个承诺SVN的人。 任何指示如何做到这一点将非常感激!
git merge可以忽略行结束的差异吗? 也许我在问错误的问题……但是: 我尝试了uisng的config.crlf input但事情有点乱,失控,特别是当我应用它后,事实 。 首先,在应用此选项之前应用此configuration似乎不会影响提交到存储库的文件。 另一件事是突然所有提交现在导致大量关于CRLF转换为LF的恼人的警告消息。 说实话,我并不在意使用什么行结尾,我个人更喜欢Unix风格\n ,但无论如何。 我所关心的只是让git merge变得更聪明一些,忽略了行尾的差异。 有时我有两个相同的文件,但git会标记为冲突(冲突是整个文件),只是因为它们使用不同的行结束字符。 更新: 我发现, git diff接受一个–ignore-space-at-eol选项,是否可以让git merge使用这个选项呢?
我对Git相对来说比较陌生,但是我发现在家工作非常容易,我希望在我们的项目存储在Svn仓库的工作中使用它。 不幸的是,这些软件库稍微不标准,我无法克隆它们。 当然,他们都有主干,分支/和标签/,但分支/和标签/有子目录之前击中真正的项目目录: 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 克隆后: $ 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 我没有得到任何实际的项目分支或标签。 我实际上需要能够在干线,一个维护分支和一个开发分支上工作。 我已经尝试了这种方法,除了修改configuration几个黑客,但没有任何工作对我来说。 有什么办法可以将我的非标准Svn项目的关键组件到本地git存储库,以便我可以轻松地在它们之间移动? 非常感谢。 更新:我应该补充说,我不能做批发切换到Git(还)。 还有其他团队成员参与和国际存在。 过渡的物stream比我愿意承担的要多,直到我对Git更加舒适。 正如我所提到的,我还是很新的。 我几乎没有抓住它的能力的表面。
我阅读了Git手册,FAQ,Git – SVN速成教程等,他们都解释了这一点,但是你却找不到一个简单的指令: SVN仓库: svn://myserver/path/to/svn/repos Git仓库: git://myserver/path/to/git/repos git-do-the-magic-svn-import-with-history \ svn://myserver/path/to/svn/repos \ git://myserver/path/to/git/repos 我不指望它那么简单,我也不指望它是一个单一的命令。 但是,我希望不要试图解释任何事情 – 只是说明在这个例子中要采取什么措施。