标签: version-control

将 ~ 置于源代码控制之下的提示

我想将我的主目录 (~) 置于源代码管理之下(在本例中为 git),因为我有许多设置文件(.gitconfig、.gitignore、.emacs 等),我想在其中跨机器携带,将它们放在 Git 中会更方便检索它们。

我的主要机器是我的 MacBook,OS X 的设置方式,有很多我想忽略的文件夹(文档、下载、.ssh)。还有一些文件夹已经在使用 Git (.emacs.d)。

我的想法是将所有这些目录添加到我的 .gitignore 文件中,但这似乎有点令人厌烦,并且可能会导致一些无法预料的后果。我的下一个想法是定期将我想要存储的文件复制到家中的某个文件夹中,然后提交该文件夹。问题在于我必须记住在提交之前移动它们。

有没有干净的方法来做到这一点?

settings git version-control

76
推荐指数
4
解决办法
7581
查看次数

将 $HOME 放在 git 中而不是符号链接点文件是否存在缺陷?

多年来,我一直将我的整个$HOME目录检查到 subversion 中。这包括我所有的点文件和应用程序配置文件、许多脚本、工具和技巧、我喜欢的基本主目录结构、不是一些奇怪的项目和一个值得随机数据的仓库。这是一件好事。虽然持续了。

但它已经失控了。几十个系统的基本结账是相同的,但并非所有这些东西都适合我的所有机器。它甚至不能在不同的发行版中都能很好地发挥作用。

我正在清理房子——将数据从它所属的地方分离出来,将一些脚本拆分为单独的项目,修复一些应该自动化的东西中的断开链接,等等。

我的意图是,以取代subversiongit为顶层结账$HOME,但我想这削减下来,只是我想对我所有的系统,这意味着点文件,一些目录和一些基本的自定义脚本的事情。

在在线阅读时,很多人似乎都使用符号链接方法来执行此操作:克隆到子目录中,然后从$HOME存储库中创建符号链接。$HOME十多年来,我一直在完全版本控制之下,我不喜欢这种方法的想法,我无法弄清楚为什么人们似乎如此反对直接结帐方法。我需要了解特定于git作为顶级结帐的陷阱$HOME吗?

PS 部分作为良好编码的练习,我还计划在 GitHub 上公开我的根结帐。令人恐惧的是,我允许在应该毫不犹豫地共享的文件中收集多少安全敏感信息!WiFi 密码、未加密的 RSA 密钥等。 Eeek!

git version-control home dot-files

39
推荐指数
4
解决办法
8664
查看次数

Github 添加一个仓库作为一个现有克隆的分支

所以我有一个从 github 上的上游源克隆的 git 存储库。我对其进行了一些更改(在 master 分支中未提交)。我想要做的是将我的更改作为一个新分支推送到我的 github 页面上,并且让 github 仍然将其视为一个分支。

那可能吗?我对 git 和 github 相当陌生。我的问题甚至有意义吗?

我能想到的最简单的方法(我确定这是最绕的方法)是在 github 上分叉 repo。在本地将其克隆到不同的目录。添加上游源代码库。在那个新的分叉仓库中创建一个分支。将我的代码更改手动复制到新的本地存储库中。然后把它推回我的github。

这是一个常见的用例,有一种更简单的方法可以在不复制目录的情况下做到这一点吗?

我想我是在这里问而不是 SO 因为我在 linux 上使用命令行 git 并且这里的人给出了更好的答案 imo =]

git version-control github

25
推荐指数
1
解决办法
2万
查看次数

*BSD 下 /etc 的版本控制

/etc在各种 unice 下,存在哪些交钥匙解决方案可以置于版本控制之下?交钥匙并不一定意味着基本安装的一部分,但以下功能会很好:

  • 挂钩到 VCS 命令以管理元数据(所有权、权限);
  • 与包管理器集成(安装前后自动运行,智能处理升级);
  • 将上游文件版本视为一个分支;
  • 预先填写的忽略列表;
  • 支持多个底层 VCS(尤其是分布式 VCS)。

我在Debian和衍生品下使用etckeeper。除了不跟踪上游版本之外,它具有上述所有功能。我想了解替代方案,尤其是在 *BSD 上。

configuration version-control etc

15
推荐指数
1
解决办法
1456
查看次数

获取两个不同 linux 安装差异的工具或技术

阿尔伯特·爱因斯坦名言

疯狂:一遍又一遍地做同样的事情,却期待不同的结果

很多时候,Linux 把我逼疯了,因为我一遍又一遍地做同样的事情并且从一个盒子到另一个盒子得到不同的结果。(见我之前的问题)。

对我来说,最大的困惑是接管其他人安装的机器(就像与网络托管公司签约时的情况)。你只是不知道你在处理什么。

是否有某种聪明的差异工具可以在 Linux (Ubuntu) 的安装上运行,让我了解该机器如何从默认安装转向?

即可以向我显示将要表现出令人惊讶的命令列表的东西,从而避免反复试验的方法。

configuration version-control

11
推荐指数
2
解决办法
2万
查看次数

如何知道 debian 中软件包的源存储库?

在 Debian 中,AFAIK 一些包在 Subversion(著名的 team-pkg-gnome)中维护,而一些在 git 中维护,而另一些在其他一些 VCS 中维护。

有没有办法知道包的来源在哪里而不做apt-get source $PACKAGENAME

我尝试了三种方法,但都失败了:-

$apt show $PACKAGENAME
$aptitude show $PACKAGENAME 
$apt-cache show $PACKAGENAME 
Run Code Online (Sandbox Code Playgroud)

以上均无法提供/共享此信息。

有没有办法获取信息。我需要知道源代码库。名称以及它是否在 git、svn 或其他版本控制中。

source debian version-control package-management

10
推荐指数
2
解决办法
2242
查看次数

直接从本地 Linux Git 远程更改 Github 存储库中的目录名称?

这是我的 Git 存储库:

https://github.com/benqzq/ulcwe
Run Code Online (Sandbox Code Playgroud)

它有一个名为目录local,我想将其名称更改为另一个名称(比如,从localxyz)。

通过 GitHub GUI 手动更改它是一场噩梦,因为我必须分别更改每个文件的目录名称(无论您信不信,GitHub 尚未包含“目录重命名”功能)。

安装 Git 后,我​​尝试了以下命令:

git remote https://github.com/benqzq/ulcwe && git mv local xyz && exit
Run Code Online (Sandbox Code Playgroud)

虽然我没有收到任何输入 GitHub 密码的提示,但我确实收到了这个错误:

fatal: Not a git repository (or any parent up to mount point /mnt/c)
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).
Run Code Online (Sandbox Code Playgroud)

我知道 Git 的重点是下载项目、更改、测试,然后推送到托管提供商(在本例中为 GitHub),但仅更改目录,我希望直接操作。Git甚至有可能吗?

我应该使用另一个程序吗?

remote git version-control github mv

10
推荐指数
2
解决办法
1万
查看次数

对于没有经验的用户来说,很好的 Subversion 介绍?

您能否为 UNIX(或 Mac OS X)用户推荐一个很好的 Subversion 介绍?它可以假定熟悉基本的命令行用法,但不熟悉任何高级主题(此处将 bash 脚本视为“高级用法”......)

理想情况下,该指南应包括:

  • 简要介绍 VCS 的用途(一般而言),特别是 Subversion 模型;

  • 快速开始使用(结帐、更新/编辑/提交周期)

  • 安装说明; 如果它提到它已经可用于所有主要操作系统并引导人们从包安装而不是从源代码编译,则加分...

books subversion version-control

9
推荐指数
1
解决办法
4196
查看次数

我该如何理解diff输出的统一格式?

来自diffutils 的手册

接下来是一个或多个差异;每个大块显示文件不同的一个区域。统一格式看起来像这样:

@@ from-file-line-numbers to-file-line-numbers @@
line-from-either-file
line-from-either-file...
Run Code Online (Sandbox Code Playgroud)

如果一个大块只包含一行,则只显示它的起始行号。 否则它的行号看起来像“开始,计数”。一个空的大块被认为是从大块后面的那一行开始。

如果一个大块和它的上下文包含两行或更多行,它的行号看起来像 'start,count'。否则只显示其结束行号。一个空的大块被认为在大块之前的行结束。

他们的意思是什么?您能否还举一些例子来说明它们的含义?

特别是,我无法分辨最后两段中案例之间的差异。他们似乎在谈论相同的案例,但我怀疑他们没有。

  • 第一段中的“if”情况和第二段中的“otherwise”情况有什么区别?

  • 第一段中的“otherwise”情况与第二段中的“if”情况有什么区别?

diff version-control text-processing

8
推荐指数
1
解决办法
7784
查看次数

Git - 像处理文件一样处理符号链接

有没有一种方法git可以像处理文件一样处理符号链接。如果我通常添加一个像 这样的符号链接git add symlink,git 只是存储/控制文件的路径,而不是链接的文件。

是否可以git像处理链接文件本身一样处理符号链接?

filesystems git version-control symlink file-management

8
推荐指数
1
解决办法
6231
查看次数