当试图在git控制下获得一个旧的svn项目转储时,我遇到了一个有趣的问题。 每当我运行git svn ,我得到一个错误,说它不是一个git命令,但有文件,我可以使用git help 。 我的安装有什么问题,或者我只是在这里失去了一些东西? 编辑:我也许应该提到,我在Windows XP下运行msysGit版本1.6.1.9.g97c34,我得到的错误是: $ git svn git:'svn'不是一个 git的命令。 见'git –help'。 你的意思是其中之一? fsck的 显示
在我读过的所有Git教程中,他们都说可以这样做: git init git add . git commit 当我这样做,我得到一个大文本文件打开。 这些教程似乎没有解决这个问题,所以我不知道如何处理这个文件,或者如果有什么需要的话。
这里是我目前在公司的服务器上的裸回购钩: git push origin master这个钩子推到Assembla。 我需要的只是推一个分支(主,理想),当有人推动到我们的服务器上的分支的变化,并忽略推其他分支。 是否有可能从裸露的回购中select分支并只将该分支推送到Assembla?
可能重复: 我怎样才能看到传入的提交git? “hg outgoing”或“hg incoming”的git相当于什么? 在Mercurial中, hg outgoing的hg outgoing列出比服务器上的更新更新的变更集,并且如果我要执行hg push ,它将被发送。 这与hg incoming和hg pull相反。
这个问题不仅涉及到如何完成这个任务,而且涉及到使用Git是好还是不好的做法。 考虑到本地我在主分支上做的大部分工作,但我已经创build了一个专题分支,我将称之为“topical_xFeature”。 在处理“topical_xFeature”并在主分支上来回切换做其他事情的过程中,我发现在“topical_xFeature”分支上做了多个提交,但是在每次提交之间,我做了no推。 首先 ,你会考虑这种不好的做法吗? 坚持一个分支每推一个提交不会更明智吗? 在什么情况下,在推送之前在分支上进行多次提交是很好的做法? 其次 ,我应该如何最好地将topical_xFeature分支上的多个提交引入主分支来进行推送? 不用担心这个问题,只是在多个提交被推送的地方进行推送,或者是不是很方便地将提交合并到一个提交然后推送,这是一件麻烦的事情? 再次,如何做到这一点?
当我使用 git commit –amend 它会进入一个vi窗口,让我input注释提交,问题是vi的窗口会显示一些从前壳背景的脏字符。 所以我不知道如何让vi重新加载或重画屏幕使屏幕正常。 到目前为止,我尝试重置terminal和Ctrl + L,它的工作,但我不知道有这样的情况最好的答案?
我们有一个超过400个提交的Git仓库,其中的第一个是很多的反复试验。 我们希望通过将许多压缩成单个提交来清理这些提交。 当然,git-rebase似乎是要走的路。 我的问题是,它最终与合并冲突,这些冲突并不容易解决。 我不明白为什么应该有任何冲突,因为我只是压制承诺(不删除或重新排列)。 很可能,这表明我不完全理解git-rebase如何做它的南瓜。 以下是我正在使用的脚本的修改版本: repo_squash.sh(这是实际运行的脚本): rm -rf repo_squash git clone repo repo_squash cd repo_squash/ GIT_EDITOR=../repo_squash_helper.sh git rebase –strategy theirs -i bd6a09a484b8230d0810e6689cf08a24f26f287a repo_squash_helper.sh(此脚本仅用于repo_squash.sh): if grep -q "pick " $1 then # cp $1 ../repo_squash_history.txt # emacs -nw $1 sed -f ../repo_squash_list.txt < $1 > $1.tmp mv $1.tmp $1 else if grep -q "initial […]
我的存储库进行了更改,如: 一些不相关的提交 用100行内容提交新文件foo …介入承诺,其中一些触摸foo … 将foo的内容插入现有文件bar的顶部,并在相同的提交中将git rm foo插入 …更无关的提交… 现在我想看看删除的文件foo的日志。 我读过的所有东西,包括SO,都说我应该可以用git log — foo ,但是这个命令没有输出。 如果我发现包括删除foo的提交,我可以git log 1234abcd — foo并查看它的日志,所以我认为我的path不是问题。 还要注意, git merge-base HEAD 1234abcd输出1234abcd[…] ,所以我认为这应该certificate提交可以从HEAD 。 请注意,在我的工作树中没有文件foo (显然,因为它已被删除)。 在OS X上使用Git 1.7.1.1。 为什么不git log — foo为我工作,我该如何解决它? 谢谢!
我可以设置一个别名,但似乎我应该能够将其设置为configuration文件中的一个选项,只是我没有看到反正这样做。 当我做差异化时,我只想要–ignore-space-change ,而不是当我正在进行应用或其他任何事情时。 我试图让差异更容易理解,而不是与外部的+/-线,它们没有真正的变化混乱。
有没有办法使用git format-patch创build的补丁是svn兼容的,这样我就可以将它提交给svn repo? 我在github上工作了一个svn回购,并想把我的修改回到主回购。 我需要创build一个补丁来做到这一点,但补丁不能应用,因为git格式的补丁不同于svn。 我还没有发现一些秘密吗? 更新:虽然目前没有脚本或本地git的方式来做到这一点,但我确实设法从今年早些时候find一篇文章,介绍如何手动完成此操作。 我遵循指示,并成功让我的git补丁与svn一起工作。 如果有人可以试图写一个脚本来实现这一点,并为git项目做出贡献,我将会非常感激每个人。 http://kerneltrap.org/mailarchive/git/2008/1/15/570308/thread#mid-570308