我正在寻找从上次提交创build补丁的魔法命令。 我的工作stream程有时看起来像这样 vi some.txt git add some.txt git commit -m "some change" 现在我只想写 git create-patch-from-last-commit-to-file SOME-PATCH0001.patch 但是我应该怎么做,而不是create-patch-from-last-commit-to-file的create-patch-from-last-commit-to-file ?
我有一个CENTRAL裸机存储库,有三个开发人员存储库,可以正常进行推送。 我还有另外两个存储库,从CENTRAL裸回购:一个是现场服务器,另一个是testing/阶段服务器 – 每个从各自的分支拉。 情况是这样的:我有一个post-update挂钩脚本CENTRAL回购,它会自动访问testing和现场回购,并运行每个拉命令。 这将更新testing和实时服务器,全部取决于哪个分支有新的提交。 这一切都很好。 问题是:紧急情况下可能会有文件直接在服务器上更新(通过ftp或其他),并且CENTRAL更新后的脚本将会因为合并/覆盖冲突而发生失败。 没有办法避免这种情况,这是不可避免的。 我想要发生的是这样的:我希望从实况和testing网站拉总是覆盖/合并拉。 总是。 这些回购将是只有拉,因为它们不是为了发展。 在我所有的研究中,我找不到一个很好的解决办法, 总是强制覆盖本地文件。 这是可能吗? 如果是这样的话,这将会是一个很好的发展情景。
我遵循一个开发stream程,为每个新function或故事卡创build一个新的本地分支。 完成后,我将分支合并到主机中,然后按下。 由于懒惰或健忘的原因,随着时间的推移,往往会发生一大堆地方分支,其中一些(如尖峰)可能没有合并。 我知道如何列出所有本地分支,我知道如何删除一个分支,但我想知道是否有一个git命令,允许我删除所有本地分支? 下面是git branch –merged命令的输出。 user@machine:~/projects/application[master]$ git branch –merged STORY-123-Short-Description STORY-456-Another-Description STORY-789-Blah-Blah * master 所有尝试删除使用grep -v \*列出的分支(按照下面的答案)会导致错误: error: branch 'STORY-123-Short-Description' not found. error: branch 'STORY-456-Another-Description' not found. error: branch 'STORY-789-Blah-Blah' not found. 我在用着: git 1.7.4.1 Ubuntu 10.04 GNU bash,版本4.1.5(1) – 发布 GNU grep 2.5.4
我有两个使用svn:externals的 SVN项目。 我怎样才能在GIT中具有相同的存储库布局结构?
我想删除我的工作副本的所有更改。 运行git status显示修改的文件。 我没有做任何事似乎删除这些修改。 例如: rbellamy@PROMETHEUS /d/Development/rhino-etl (master) $ git status # On branch master # Changed but not updated: # (use "git add <file>…" to update what will be committed) # (use "git checkout — <file>…" to discard changes in working directory) # # modified: Rhino.Etl.Core/Enumerables/CachingEnumerable.cs # modified: Rhino.Etl.Core/Pipelines/SingleThreadedPipelineExecuter.cs # modified: Rhino.Etl.Tests/Rhino.Etl.Tests.csproj # modified: […]
我们在源代码库中有很多电子表格(xls)。 这些通常是用gnumeric或openoffice.org编辑的,主要用来填充dbUnit进行unit testing的数据库。 没有简单的方法来对我所知道的xls文件进行差异化,这使得合并非常繁琐和容易出错。 我已经尝试将电子表格转换为xml并进行常规比较,但是真的觉得应该是最后一招。 我想用git来执行差异(和合并),就像我对文本文件做的那样。 我将如何做到这一点,例如,当发出git diff ?
做什么有什么区别: mkdir repo cd repo git init git remote add origin git://github.com/cmcculloh/repo.git git fetch –all git pull origin master 和 git clone git://github.com/cmcculloh/repo.git 我的意思是,显然有一个更短,但除此之外,他们基本上是做同样的事情?
每次我使用git与远程进行交互时(例如拉或推)时,都会显示以下消息: 警告:永久性地将“…”(RSA)添加到已知主机的列表中。 我怎样才能防止这个恼人的消息显示? 这只是一个烦恼 – 一切正常。
我的项目结构 ProjectA -FrameworkA (submodule) –Twig (submodule of FrameworkA) 我怎样才能更新子模块recursion? 我已经尝试了一些git命令(在ProjectA根上) git submodule foreach git pull origin master or git submodule foreach –recursive git pull origin master 但不能拉树枝的文件
我一直在做一些事情,并决定完全搞砸了。 所以我尝试了以下顺序: git reset –hard git rebase origin git fetch git pull git checkout 我在哪一点得到的消息 Your branch is ahead of 'origin/master' by 2 commits. 我想放弃我的本地提交 ,而不必消灭我的本地目录并重新下载一切。 我怎么能做到这一点?