哪些Eclipse文件适合置于源代码管理之下,显然除了源代码之外?
在我的项目中,具体来说,我想知道:
.metadata/*
project-dir/.project
project-dir/.classpath
project-dir/.settings/*
如果有任何相关的内容,请解释您的指南.
我有一个包含大量项目的解决方案,
我想完全删除源代码控件绑定,我该怎么做?
更新: 我真正想做的是从TFS 2005 - > 2008移动一个解决方案及其项目.这就是我删除绑定的原因,有更好的方法吗?
灵感来自Git的初学者:最终的实用指南.
这是一个信息使用水银为汇编初学者的实际使用.
初学者 - 一个已经触及源代码控制而不太了解它的程序员.
实用 - 涵盖大多数用户经常遇到的情况 - 创建存储库,分支,合并,从/向远程存储库提取/推送等.
备注:
- 解释如何完成某些事情而不是如何实现某些事情.
- 每个答案处理一个问题.
- 尽可能简明扼要地回答.
- 编辑/扩展现有答案,而不是在同一主题上创建新答案.
- 请为想要了解更多信息的人提供Mercurial wiki或HG Book的链接.
问题:
我们在工作中使用SVN,但对于我的个人项目,我决定使用Git.所以我昨天安装的Git,我不知道是什么版本号相当于在Git中.
假设我们在版本3.0.8上工作,并且每个错误修复都有自己的修订版号,我们可以在讨论这个错误修复时使用它们.那么,如果我将Git中的代码标记为3.0.8,那么我可以将其用作修订版号或其他更详细的标识类型?我发现哈希对人类不那么友好.
所以我们在我们的项目中有这个巨大的(11000行巨大的?)mainmodule.cpp源文件,每次我都要触摸它时我都会感到畏缩.
由于这个文件是如此中心和大,它不断累积越来越多的代码,我想不出一个让它真正开始缩小的好方法.
该文件在我们产品的几个(> 10)维护版本中使用并主动更改,因此很难重构它.如果我"简单地"把它分开,比如说开始,分成3个文件,那么合并来自维护版本的变化将成为一场噩梦.而且,如果你拆分了一个历史悠久且历史悠久的文件,跟踪和检查历史中的旧变化SCC突然变得更加困难.
该文件基本上包含我们程序的"主类"(主要内部工作调度和协调),因此每次添加一个功能时,它也会影响该文件,并且每次增长时都会影响该文件.:-(
在这个情况下,你会怎么做?有关如何将新功能移动到单独的源文件而不会弄乱SCC工作流程的任何想法?
(关于工具的注意事项:我们使用C++ Visual Studio;我们使用AccuRevas SCC但我认为这里的类型SCC并不重要;我们Araxis Merge用来做实际比较和合并文件)
使用Git X并且必须在某些事情上做到失败.看起来就像几天前我创建了一个名为的分支detached HEAD并且一直致力于它.我的正常过程是承诺master,然后推动它origin.但我无法推动detached HEAD.
我的下一站让我搞砸了.我选择了git checkout master- 我的detached HEAD分支消失了.回到我的项目,过去几天我的所有变化都被抹去了.
无论如何我有可能得到这些改变吗?
我有一个git存储库,它只用于保存几个项目中使用的图形和声音文件.它们都在没有子目录的一个目录中.现在我刚创建了一个脚本,用于将这些资产从另一个结构化目录复制,具有多个子目录级别.
现在我只想通过git跟踪(源)分层文件结构,并且应该忽略(目标)平面目录(包含一堆中的所有文件).
我已将目标目录添加到.gitignore,但git仍在跟踪其中的更改.我想如果我提交删除目标目录中的旧文件,git可能会停止跟踪新内容(由脚本复制),但事实并非如此.
如何让git忘记目标目录?
ref^是指之前ref的提交,之后 获取提交ref怎么样?
例如,如果我git checkout 12345如何检查下一次提交?
谢谢.
PS是的,git是一个DAG节点指针结构树,无论如何. 如何在此之后找到提交?
我可以用什么命令打印出HEAD的提交ID?
这就是我手工做的事情:
$ cat .git/HEAD
ref: refs/heads/v3.3
$ cat .git/refs/heads/v3.3
6050732e725c68b83c35c873ff8808dff1c406e1
Run Code Online (Sandbox Code Playgroud)
但我需要一个脚本,可以将某些命令的输出可靠地传递给文本文件,使得文本文件恰好包含HEAD的提交ID(不多或少,而不仅仅是ref).有人可以帮忙吗?
我之前已经问过如何在git存储库中压缩前两个提交.
虽然这些解决方案非常有趣,而且并不像git中的其他一些东西那样令人惊讶,但如果你需要在项目开发过程中多次重复这个过程,它们仍然是一个众所周知的伤害.
所以,我宁愿只经历一次痛苦,然后能够永远使用标准的交互式rebase.
那么,我想做的是拥有一个空的初始提交,仅仅是为了成为第一个提交.没有代码,没有任何东西.只是占用空间,因此它可以作为rebase的基础.
我的问题是,拥有一个现有的存储库,如何在第一个存储库之前插入一个新的空提交,并将其他所有人转移?
version-control ×10
git ×6
c++ ×1
eclipse ×1
git-rebase ×1
maintenance ×1
mercurial ×1
rebase ×1
svn ×1
tfs ×1