如何通过同一存储库在不同的计算机上git不同的文件和相同的文件

时间:2015-09-22 02:20:07

标签: git emacs

我的emacs有一些设置。

让我们说这个设置可以分为" B(两个)+ P(个人计算机)+ R(远程计算机)"

我想在我的个人电脑中,我可以拉/推" B + P" 在remote_computers中,我可以git pull / push" B + R"。

最重要的是,存储库包含了所有的东西" B + P + R"。

非常感谢。

2 个答案:

答案 0 :(得分:2)

Emacs不是一个编辑器,而是一个带编辑器的ELisp环境。您的设置是用ELisp(Emacs Lisp)编写的。 ELisp非常强大。一种选择是维护一组设置并使用ELisp to differentiate between "remote" and "personal" features。使用环境变量或点文件或任何您喜欢的内容来指示" remote" vs" personal"。这可能是最不麻烦的。

这是我.emacs的一个例子。 Aquamacs默认 alt-w 以终止当前帧。重新绑定它以杀死当前缓冲区。 Aquamacs使用osx-key-mode-map进行密钥绑定,因此它首先检查它,以便配置继续​​与其他Emacs实现一起使用。

(defun kill-current-buffer ()
  (interactive)
  (kill-buffer (current-buffer)))
(when (boundp 'osx-key-mode-map)
    (define-key osx-key-mode-map '[(alt w)] 'kill-current-buffer))

另一种方法是维持三个分支。从universal开始,然后从中分支personalremote。当你想要添加一些东西时,程序会像这样......

添加特定于personalremote的功能时,请将其添加到相应的分支。如果您确定某项功能实际上是通用的,则可以使用git-cherry-pick将其添加到universal

添加通用功能时,请将其提交到universal分支,然后git checkout remote; git merge universal; git checkout personal; git merge universal

然后克隆存储库并签出相应的分支。

答案 1 :(得分:0)

听起来你想要的是根据你的拉动位置条件加载文件的能力。虽然不能直接支持,但可以通过在每台机器上设置一些简单的设置来实现。

我会检查以下帖子,因为它似乎与您的问题非常相似。但是,如果您对git有任何具体问题,我可以在这里为您解答。 How to ignore files only locally in git?