在不破坏git的情况下管理git配置中的dotfile合并冲突

时间:2018-09-06 00:16:02

标签: git merge-conflict-resolution dotfiles

我在~/.dotfiles的git存储库中管理配置文件,并使用stow进行部署。

有时我会遇到如下错误:

First, rewinding head to replay your work on top of it...
Applying: tmux: put newer version commands inside if-block
fatal: bad config line 149 in file /home/ravi/.config/git/config
Cannot store 5639c86778d99ec6b34c93bfd4d122c1cbb379a8

git抱怨是因为其配置文件语法错误-由于尚未解决的合并冲突,该配置文件现在包含以下行:

<<<<<<< A
lines in file A
=======
lines in file B
>>>>>>> B

每次发生这种情况,我都需要:

  1. git rebase --abort
  2. cp ~/.config/git/config ~/.gitconfig(优先使用.gitconfig
  3. 完成最初失败的操作
  4. 记住要删除~/.gitconfig

如何自动将配置副本复制到~/.gitconfig并随后删除?

1 个答案:

答案 0 :(得分:1)

这是一个非常有趣的问题。

我建议避免使用它。 :-)

我在Git存储库中保留了一组点文件(包括$HOME/.gitconfig文件),但是我没有将此Git存储库的工作树用作实际的点文件。 1 < / sup>因此,如果发生冲突,它们不会影响实际的点文件。


1 这仅在某些系统上是正确的,但我避免在主目录点文件是指向dotfiles-work-tree副本的硬链接或符号链接的系统上进行合并。