2016-01-09 12 views
0

У меня есть 2 папки с одинаковыми файлами.Git: синхронизировать файлы с неуправляемой папкой

  • gitprojects/npm_project
  • gitprojects/Projecta/node_modules/npm_project

Первая папка управляется с мерзавцем, то второй не один. Я редактирую файлы во второй папке. Там работать легче.

После завершения работы я хочу скопировать измененные файлы в 1-ю папку. Я мог бы просто использовать cp -R. Но это может быть не очень хорошо, я не хочу копировать все файлы, и это может быть опасно, я могу перезаписать изменения файлов.

Действительно ли git обеспечивает хорошую функцию, сравнивая папку с неуправляемым и объединяя их?

+1

ты не можешь просто использовать удаление второго места и клонировать его с 1-го места? Вы можете иметь как можно больше локальных копий репо. Это даст вам всю силу git. –

+0

2-е место установлено с 'npm install', мне легче редактировать его, пока это требуется для projectA, и мне нужно внести изменения в оба проекта. – Artisan72

+0

Git ничего не дает, чтобы делать то, что вы хотите. То, что вы хотите, это git. Альтернативой делать вещи вручную (например, копирование, слияние и т. Д.) Можно автоматизировать с помощью git. Вполне вероятно, что более полезным решением было бы выяснить, какие поведения предоставляются «npm install», которые не предоставляются «git clone» и каким-то образом их предоставляют. –

ответ

2

Убедитесь, что вы сделали фиксацию содержимого папки 1 (gitprojects/npm_project). Поскольку папка 1 теперь полностью управляется Git (т. Е. Вы можете вернуться к предыдущим состояниям, просто используя команды Git), вы можете скопировать все файлы из папки 2 в папку 1 - вам не нужно беспокоиться о файлах, t хотите скопировать, так как вы можете просто удалить их из папки 1 после копии.

При всех файлах из папки 2 скопированных в папку 1, просто используйте git status и git diff, чтобы увидеть изменения из папки 2.

Примечания вы найдете в долгосрочной перспективе, что поддерживая весь ваш источник в управление версиями намного проще.

0

У меня есть идея получше:

я удалить все файлы в папке 2, используя rm -rf, после npm install, и создать символическую ссылку на папку 1:

cd gitprojects/projectA 
npm install 
code node_modules 
rm -rf npm_project 
ln -s /full/path/to/gitprojects/npm_project npm_project