我如何告诉 git(或其他 dvcs)去私下跟踪一个文件?

11 浏览
0 Comments

我如何告诉 git(或其他 dvcs)去私下跟踪一个文件?

我的用例与这个非常相似;一个团队使用一个中央代码库(在我的情况下是subversion,但我相信如果是git,问题也是一样的),其中一些文件是成员私有的(Django本地设置文件,IDE私有项目首选项等)。虽然私有文件应保持私有,也就是说,我不希望我对其进行的更改被推送或提交,但我确实希望对该文件进行跟踪和版本控制。

最好的选择是默认情况下将文件保持私有;一个变通办法是保持私有提交-记住单独提交私有文件可能会很麻烦,但仍然比完全无法跟踪要好。

与建议的解决方案相比:

此方法此方法并不好,因为它们完全阻止了文件的提交;这不是我想要的。我希望在本地进行提交;只是不想将其公开。

顺便说一下-虽然我喜欢分布式版本控制系统,并且git一直是一种默认选择,但我对它并不特别执着(无意中的双关语);如果只有hg或bzr可以实现这一点,这可能足以让我转换。

0
0 Comments

如何告诉Git(或其他版本控制系统)私下跟踪一个文件?

问题的出现原因是:Git是一个分布式版本控制系统,它跟踪整个项目的变化。但有时我们希望某些文件可以私下跟踪,而不被外部版本控制所知晓。这可能是因为这些文件包含私人配置,或者与特定用户相关。

解决方法是:在项目根目录下创建一个被忽略的子文件夹,用于存放私有文件。我们可以在.gitignore文件中添加对该文件夹的忽略规则,确保它不被外部版本控制系统所追踪。然后,在该文件夹下初始化一个独立的Git仓库,用于跟踪私有文件的变化。如果其他软件需要在主仓库的特定位置找到其配置文件,可以创建一个符号链接,链接到私有文件夹中的某个文件。这个符号链接可以选择是否被跟踪,因为它的历史记录与主项目无关,并且应该在很长一段时间内保持稳定。

需要注意的是,私有文件夹不一定非要放在项目根目录下,但它必须相对于项目根目录的某个位置,以便进行符号链接。在Git中,完全可以在一个仓库的子目录下初始化另一个仓库,只要外部仓库忽略了内部仓库即可。实际上,我个人在我的主目录下和主目录下的项目中都使用了这种方法。

尽管你可能希望用户配置文件与主仓库的特定提交相关联,但这在Git中是不可能的。Git关注整个仓库的状态(也就是它所跟踪的所有内容),它无法提交部分更改。这是因为,即使只删除一个文件,提交的SHA-1哈希标识也会完全不同。

通过上述方法,我们可以在Git中实现私下跟踪文件的需求,同时保持项目的完整性和稳定性。这对于包含私人配置或与特定用户相关的文件非常有用。

0
0 Comments

有时候我们希望在使用Git(或其他版本控制系统)时,能够跟踪某个文件但不希望将其提交到公共的代码库中。下面介绍了一个解决这个问题的方法:

首先,我们可以创建一个模板文件,比如`settings.txt.template`,将其添加到代码库中并提交。然后,我们在本地设置个人文件(`settings.txt`),并将其添加到`.gitignore`文件中,这样Git就会自动忽略这个文件的提交。

另外,还可以考虑使用Git的子模块功能。具体操作可以参考Git官方文档中的Git子模块部分

通过以上方法,我们可以实现在Git中跟踪文件但不将其提交到公共代码库的需求。

0
0 Comments

问题的出现原因:需要找到一种方法告诉git或其他版本控制系统如何跟踪一个文件,但同时希望该文件的跟踪是私有的。

解决方法:

1. 创建一个名为"Settings"的文件夹,并在其中为每个用户创建一个文件夹。

2. 使用操作系统的环境变量获取当前登录用户的用户名。

3. 目录结构如下所示:

项目
 / Settings
   / 用户1
   / 用户2
   / 用户3

4. 确保所有文件都已提交,并为每个用户创建一个文件夹。

5. 在构建脚本、项目文件和脚本中使用用户特定的部分,通过使用环境变量实现。

这样,每个用户都可以在其自己的文件夹中进行更改,而不会影响其他用户的文件。

0