Tag: git新

删除Git仓库Gitolite?

我想知道什么是正确的方法是使用gitolite时删除存储库。 除了从服务器删除存储库并删除与我正在删除的存储库相关的所有configuration,还有其他事情需要做吗?

Git合并不使用默认的合并信息,用默认信息打开编辑器

我如何强制git merge使用默认的合并消息,而不是加载我的编辑器与上述消息? 我没有在git config -l列出编辑器,所以我不确定它为什么会打开一个编辑器。

Git拉错了分支

我和另一位开发人员合并,将我们的工作推向一个称为工具的非主分支。 这样,我们没有影响到其他的团队。 我的主题分支被称为DPM-93,我的git工作stream程是这样的。 # do some work git checkout DPM-93 git commit -m "did some work" # catch up git checkout toolwork git pull origin toolwork # rebase my topic branch git checkout DPM-93 git rebase toolwork # merge and push my changes git checkout toolwork git merge –no-ff DPM-93 git push origin toolwork 这大部分工作正常,直到我意外地发出这些git命令 […]

编译错误 – 在共享主机上编译git时找不到msgfmt命令

我正在尝试从我的共享主机上更新Git。 为此,我遵循以下步骤: 下载最新的Git版本 解包并放置在服务器上 configuration和创buildMakefile – > ./configure –prefix = $ HOME / dev / git / src –without-tcltk build立软件包 – >“make”然后“make install” 更新PATH .bash_profile 我卡在第4点。当我运行“make”命令,我得到以下内容: user@ssh1:~/dev/git/src$ make SUBDIR gitweb SUBDIR ../ make[2]: ? GIT-VERSION-FILE ? est ? jour. GEN git-instaweb SUBDIR perl SUBDIR git_remote_helpers SUBDIR templates MSGFMT po/build/locale/is/LC_MESSAGES/git.mo /bin/sh: msgfmt: command not found make: […]

如何在git中列出指向特定提交的所有标记

我已经看到了命令git describe和git-name-rev但我没有设法让他们列出多个标签。 例如:我有sha1 48eb354,我知道标签A和B指向它。 所以我想要一个git命令git {something} 48eb354 ,产生类似于“A,B”的输出。 我不知道引用相对于其他标签或分支只是完全匹配的标签。

NuGet和分布式版本控制(DVCS)

我想知道是否有可能使用nuget只在版本控制中存储对所需软件包的引用(只有package.config并忽略软件包文件夹)。 有没有办法告诉nuget(重新)下载各种package.config文件中的所有引用的包? 或者可以放到构build脚本中的类似东西。 更新: 似乎我不是唯一一个请求这个function的人: 看到这个工作项目 (感谢PHeiberg的提示) 更新2: NuGet现在具有这个function。 有关详细信息,请参阅使用NuGet而不提交包到源代码pipe理 。 剩下的就是将packages目录添加到.gitignore或者你的VCS的一些等价物中(如果你在版本库的根目录下使用git, /packages/将会诀窍)。

Git可以真正追踪从一个文件到另一个文件的单个函数的移动吗? 如果是这样,怎么样?

有几次,我碰到过这样的说法,如果你把一个文件中的一个函数移到另一个文件中,Git可以跟踪它。 例如, 这个条目说:“Linus说,如果你把一个函数从一个文件移到另一个文件,Git会告诉你这个单一函数的历史。” 但是我对Git的一些底层devise有一点点的认识,我不明白这是可能的。 所以我想知道…这是一个正确的说法? 如果是这样,这怎么可能? 我的理解是,Git将每个文件的内容存储为一个Blob,每个Blob具有全局唯一标识,这个标识来自其内容和大小的SHA散列。 Git然后将文件夹表示为树。 任何文件名信息属于树,而不是Blob,所以文件重命名例如显示为对树的更改,而不是Blob。 所以,如果我有一个名为“foo”的文件,其中包含20个函数,而一个名为“bar”的文件包含5个函数,我将其中一个函数从foo移动到bar(分别导致19和6) Git如何检测到我将该函数从一个文件移动到另一个文件? 从我的理解,这将导致存在2个新的斑点(一个为修改的foo和一个为修改的栏)。 我意识到可以计算一个差异来显示函数从一个文件移动到另一个文件。 但是我不明白这个函数的历史如何可能与bar而不是foo(不是自动的)相关联。 如果Git真的要查看单个文件,并为每个函数计算一个blob (这将是疯狂/不可行的,因为你必须知道如何parsing任何可能的语言),那么我可以看到这是可能的。 所以……这个陈述是否正确? 如果这是正确的,那么我的理解缺乏什么?

有没有办法使用Mercurial存储库作为Git子模块?

我很高兴地使用子模块来跟踪我的项目所依赖的所有库。 事情是我正在使用一个名为core-plot的库,它只有一个公共的mercurial repository。 我可以在只读的Git仓库中对其进行镜像,但这是我得到的最佳select吗? 我曾经看到Mercurial中有模块来跟踪Git中的事情。 有人知道如果有其他的方式存在?

如何将本地Git存储库推送到另一台计算机?

我的笔记本电脑上有一个本地Git存储库安装程序。 我想推到我的桌面。 我怎样才能做到这一点?

如何在不需要强制推送的情况下使用git rebase?

为了实现git涅</s>,我花了一天的时间学习如何在我现在合并的情况下利用rebase。 当运行我认为是git 101stream(我在下面详细说明)时,我必须在将更改推回到原点时push –force执行。 我不是唯一一个 – 我知道这是被掩盖的(见1,2,3,4,5 ),我也明白为什么一支部队是必要的技术原因。 我的问题是这样的 – 有很多(许多)博客文章赞美rebase以及它是如何改变他们的生活的(见1,2,3,4列出的),但没有一个提到push –force是他们stream动的一部分。 然而,对于现有的stackoverflow问题,几乎所有的答案都是这样的:“是啊,如果你要重新定位,你必须使用push –force ”。 考虑到亚特兰蒂斯倡导者的数量和宗教性, 我必须相信,使用“推力”并不是亚基stream动的固有组成部分,而且如果经常要迫使他们推动,他们就会做错事 。 push –force是一件坏事 。 所以这是我的stream程。 我怎样才能在没有武力的情况下取得同样的结果? 简单的例子 两个分支: v1.0 – 发行版分支,只包含补丁 掌握 – 下一个主要版本的一切。 我有几个补丁提交和下一个版本的一些提交。 我想将这些补丁合并到我的主文件中,以便在下一个版本中不会丢失。 启蒙之前我只是简单地说: git checkout master git merge v1.0 但现在我正在尝试 git checkout master git rebase v1.0 所以现在我在这里: 的时间: git push 没有骰子。