标签: version-control

删除所有本地git分支

我遵循一个开发过程,为每个新功能或故事卡创建一个新的本地分支.完成后,我将分支合并为master,然后推送.

由于懒惰或健忘的结合,随着时间推移会发生的事情是,我最终得到了大量的本地分支,其中一些(例如尖峰)可能没有被合并.

我知道如何列出我所有的本地分支,我知道如何删除一个分支,但我想知道是否有一个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
Run Code Online (Sandbox Code Playgroud)

所有删除列出的分支的尝试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.
Run Code Online (Sandbox Code Playgroud)

我正在使用:
git 1.7.4.1
ubuntu 10.04
GNU bash,版本4.1.5(1) -
发布GNU grep 2.5.4

git bash version-control ubuntu grep

270
推荐指数
24
解决办法
16万
查看次数

什么时候删除Git中的分支?

假设我们有一个稳定的应用程序.

明天,有人会报告我们决定立即修补的大错误.因此,我们为"master"创建了一个针对该修补程序的分支,我们将其命名为"2011_Hotfix",然后我们将其推送到所有开发人员可以协作修复它.

我们修复了这个bug,并将"2011_Hotfix"合并到"master"以及当前的开发分支中.推"主人".

我们现在用"2011_Hotfix"做什么?它应该只是作为一个分支永远坐在那里直到时间结束,还是我们现在应该删除它,因为它已经达到了它的目的?将分支放在各处都是不洁净似乎是不洁净的,因为分支列表可能会变得很长,其中大部分都不再需要了.

如果它应该被删除,它的历史会发生什么?即使实际的分支不再可用,这是否会得到维护?另外,我如何删除远程分支?

git version-control github git-gui git-branch

269
推荐指数
4
解决办法
6万
查看次数

下载Github pull请求作为统一差异

如何将Github pull请求中包含的更改作为统一差异下载?

git version-control diff github

266
推荐指数
3
解决办法
6万
查看次数

git pull origin master和git pull origin/master之间的差异

git pull origin master和之间有什么区别git pull origin/master

git version-control

264
推荐指数
3
解决办法
27万
查看次数

如何在git(版本控制)下放置数据库?

我正在做一个Web应用程序,我需要为一些重大更改创建一个分支,事实是,这些更改需要更改数据库模式,所以我想将整个数据库放在git下.

我怎么做?是否有一个特定的文件夹,我可以保存在git存储库下?我怎么知道哪一个?我怎么能确定我正在放置正确的文件夹?

我需要确定,因为这些变化不向后兼容; 我搞不起搞砸了.

我的数据库是PostgreSQL

编辑:

有人建议进行备份并将备份文件置于版本控制下而不是数据库中.说实话,我发现真的很难吞下去.

一定有更好的方法.

更新:

好的,所以没有更好的方法,但我仍然不太相信,所以我会稍微改变一下这个问题:

我想把整个数据库置于版本控制之下,我可以使用什么数据库引擎,以便我可以将实际数据库置于版本控制而不是转储?

sqlite会对git友好吗?

由于这只是开发环境,我可以选择我想要的任何数据库.

EDIT2:

我真正想要的不是跟踪我的开发历史,而是能够从我的"新的激进变化"分支切换到"当前的稳定分支",并且能够例如修复一些错误/问题等等.稳定的分支.这样,当我切换分支时,数据库自动神奇地变得与我当前所在的分支兼容.我真的不太关心实际数据.

database git postgresql version-control

263
推荐指数
8
解决办法
12万
查看次数

什么是最好的三向合并工具?

Subversion,Git,Mercurial和其他人支持三方合并(结合我的,他们的和"基础"修订版)并支持解决冲突的图形工具.

你用什么工具?Windows,Mac OS X,Linux,免费或商业,您可以命名.

以下是我用过或听过的一些内容,只是为了开始对话:

(我知道这有点像最好的差异工具,但它的不同之处在于我明确专注于三向合并工具; 例如,WinMerge不在列表中.)

version-control merge dvcs

258
推荐指数
12
解决办法
18万
查看次数

git mv并且只更改目录的大小写

虽然我发现了类似的问题,但我找不到问题的答案

当我尝试将目录从FOO重命名为foo时,git mv FOO foo我得到了

fatal: renaming 'FOO' failed: Invalid argument
Run Code Online (Sandbox Code Playgroud)

好.所以我试试git mv FOO foo2 && git mv foo2 foo

但当我尝试通过git commit .我得到

# On branch master
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
# foo
nothing added to commit but untracked files present (use "git add" to track)
Run Code Online (Sandbox Code Playgroud)

当我通过git add foo无变化添加目录并git commit .再次给我相同的消息.

我究竟做错了什么?我以为我使用区分大小写的系统(OSX)为什么我不能简单地重命名目录?

git macos version-control case-sensitive

250
推荐指数
7
解决办法
7万
查看次数

为什么'git commit'没有保存我的更改?

我这样做了git commit -m "message":

> git commit -m "save arezzo files"
# On branch master
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#       modified:   arezzo.txt
#       modified:   arezzo.jsp
#
no changes added to commit (use "git add" and/or "git commit -a")
Run Code Online (Sandbox Code Playgroud)

但之后,当我这样做git status时显示相同的修改文件:

> git status
# On branch master
# Changes not …
Run Code Online (Sandbox Code Playgroud)

git version-control git-commit

250
推荐指数
6
解决办法
28万
查看次数

Mercurial - 恢复旧版本并从那里继续

我在本地使用Mercurial进行项目(这是唯一没有推送/拉动其他地方的回购).

到目前为止,它有一个线性历史.然而,我正在研究的当前事情我现在已经意识到这是一种可怕的方法,我想在开始之前回到版本并以不同的方式实现它.

我对Mercurial中的branch/ revert/ update -C命令有点困惑.基本上我想恢复到版本38(目前在45)并让我的下一个提交有38作为父母并从那里继续.我不在乎修改39-45是永远丢失还是最终落入他们自己的死胡同.

我需要哪个命令/命令集?

version-control mercurial branch dvcs revert

248
推荐指数
6
解决办法
16万
查看次数

Git:如何压缩分支上的所有提交

我创建了新的分支master:

git checkout -b testbranch

我做了20次提交.

现在我要压缩那20个提交.我这样做:

git rebase -i HEAD~20

如果我不知道有多少提交怎么办?有什么方法可以做以下事情:

git rebase -i all on this branch

git version-control

241
推荐指数
15
解决办法
13万
查看次数