我在github上建一个名为vimfiles的repository,将 ~/.vim 内的东西push上去,使用pathogen来管理插件
添加两个submodule
git submodule add git@github.com:kien/ctrlp.vim.git bundle/ctrlp
git submodule add git@github.com:Shougo/neocomplcache.git bundle/neocomplcache
这样就添加了两个插件,然后可以使用git submodule foreach git pull origin master更新插件
但是,submodule在github上只是一个指向原repository的一个引用,如图
如果我修改了插件的几行代码,vimfiles这个仓库如何记录我的修改?
或者说,能否让vimfiles这个repository记录的不是插件原repository的指向,而是实实在在的代码?
分割线想到两种解决方法,但并不知道是否最佳做法。
其一,fork了别人插件的代码后,在fork了后的repository上对代码进行修改
然后git submodule add (新的repository) bundle/xxxx,但是如果只是改几行代码fork一个项目这个做法是否合理。
其二,不使用git submodule的方法,在bundle目录下git clone插件的代码,并去掉插件目录的.git文件夹,即去除插件的版本控制。这样就可以在vimfiles这个repository中实实在在地保存插件的代码,而缺点就是插件的更新很麻烦。
是否有更佳的方法,望告知,谢谢。
플러그인을 수정하는 것은 권장하지 않습니다.
새 호로 이동하여 작성자에게 필요한 사항을 말한 다음 작성자가 이를 구현할 때까지 기다릴 수 있습니다. 직접 변경하는 경우 직접 포크하고 새 코드를 시작하거나 코드 파일을 직접 복사해야 합니다(개인적으로는 매우 어리석은 접근 방식이라고 생각합니다).
질문에서 코드 몇 줄만 수정되었다고 썼으므로 플러그인 작성자의 해당 부분(해당 줄)을 다루기 위해 vimrc에 코드를 추가하는 것을 고려할 수 있습니다. 예를 들어, 플러그인의 함수를 수정하는 경우 해당 함수를 vimrc에 직접 추가하여 함수를 덮어쓸 수 있습니다. 또는 더 많은 분리 지점을 위해 수정 사항만 기록하는 새 저장소를 만든 다음 vimrc에 소스를 추가할 수 있습니다.