Заранее извините, если этот вопрос слишком связан с другими git merge
вопросами. У меня просто ощущение, что я до сих пор не понял git ...
Я разработал что-то, что я называю «приложением списка задач». Это сценарий оболочки для печати списка задач, сортировки строк, добавления новых строк, удаления строк и т. Д. c. Довольно удобно! Список задач - это текстовый файл, сохраненный на жестком диске. Всякий раз, когда я вызываю команду todo, она вытягивает последнюю версию txt-файла из моего репозитория Github на компьютер, на котором я работаю, редактирует локальный файл и снова отправляет его в Github. Таким образом, я могу использовать «приложение» на разных машинах, имея всегда самый последний доступный список задач.
# get newest todo-list version
git -C ~/GITHUB/ fetch #git -C enables to use the todo-list-app in every dir
git -C ~/GITHUB/ checkout origin/master -- todolist.txt
# add, remove, (or just print tasks) and write changes to file
shelltodolistfunction
# push changed file to Github again
git -C ~/GITHUB/ add ~/GITHUB/todo-list-app/inbox.txt
git -C ~/GITHUB/ commit -m "update inbox"
git -C ~/GITHUB/ push
Извлечение, вытягивание и толкание происходит медленно. В связи с этим я хотел бы добавить еще один флаг в список задач (для удобства я не показывал здесь структуру getopts приложения), чтобы он только обновлялся (т. Е. git stuff) при вызове наподобие, например, todo -update -rmtask "ask stackoverflow" -addtask "bake a cake"
.
Однако это может привести к проблеме, заключающейся в том, что на Github имеется более новая версия, в то время как я локально применяю некоторые изменения к более старой версии. При вызове todo -update
я хотел бы, чтобы приложение автоматически объединяло эти два файла, сохраняло объединенный файл локально, а также помещало его в Github.
Версия Github:
write todolist app
ask stackoverflow
plan holidays ### <- this line would not be on the local version before an update
Локальная версия:
write todolist app
### ask stackoverflow # <- this line has been deleted locally
bake a cake # <- this line has been newly added
Новая версия:
write todolist app
plan holidays
bake a cake
Можно ли это сделать автоматически и имеет ли это смысл?