2016-02-10 86 views
0

我经常在我的笔记本电脑上有一个git存储库的开发克隆,在该笔记本上创建功能分支并实现功能。当我在某个功能上工作的一半时,需要在同一个存储库中的其他功能上工作时,我会执行一个git stash并检出该功能的新分支。确定删除本地git存储库是否安全

当然,git branch告诉我所有有分支机构。尽管如此,过了一段时间,我的笔记本电脑上可能存在本地结帐,但某些功能分支未被推送,甚至不存在于远程原始分支上。在一段时间没有在项目上工作之后,结账可能会让我的工作区变得混乱,我可能希望将其从笔记本电脑中移除。

而且,我也可能会想知道对储存有什么新的文件,并改变我的笔记本电脑存在,但不是在原点。 git status告诉我这是关于当前分支签出,但只是部分,因为它没有说服务器上已经提交了哪些提交,哪些不提交。而且,每个分支也不这样做。

有一个Git命令,可以告诉我什么新的文件和变化,其特点分支机构都可以在我的笔记本电脑,但不origin,这样我能确定它是否是安全的或不去除从混帐回购协议我的笔记本电脑?

这将是很好如果命令:

  • 因为如果它也存在于起源,起源是最新与和其中每个本地分支州其他来源树枝它已经被合并(很多时候你会将一个特性分支与主分支合并在一起,并且不要将它推到原点)。

  • 每个分支状态是否有未提交的本地更改尚未或刚刚藏匿。

  • 我应该知道的其他坑剔除。

总的来说,我想“是它安全地删除这个仓库知道原产存在什么”,更是一个“什么东西都在我这个回购留下悬案”命令。

注意,我想也可以知道什么是我的笔记本电脑,而不是产地,为指针着想,我应该还是可以清理有用的。

移动回购到备份文件夹是一个没有去,这造成了很多混乱的,到最后它仍然不清楚哪个代码是最最新用最少的错误。

东西可能工作会显示是在本地,不存在原产提交,并承诺是在原产地不同的分支,因为它们是本地命令。此外,改变各分支显示未提交一个命令将是很好的,即那些AR

回答

1

第一(和非常好)步骤正在注视的

git push origin --all --dry-run 

输出即示出了分支被推送到远程。如果输出为空(或“最新”或某事),则可以安全地删除本地分支。

帮助另一个命令是

git fetch origin 
git cherry -v master origin/master 

它显示了常见的本地主产地和/主的提交。以-为前缀的 已经在原始/主标记中,前缀为 a +的符号不是,即如果所有提交的提交都以-为前缀,则放弃本地分支是安全的。如果一些以+作为前缀,则主控和原点/主控在这些提交方面有所不同。

其实我会坚持,因为它更容易解释。

0

上面的缺失部分(IIUC)是:如果我删除了这个回购,什么本地文件将永远丢失? (本地数据库文件,例如,由.gitignore忽略)。

这在我看来,

git clean -nxd 

回答了这个问题。