Category Archives: Other

Merging Three Git Repositories Into One Repository Without Losing File History

Let’s assume that we have three separate git repos named uremont-client, uremont-service, uremont-sdk. We want to create a new repo, named uremont-ios, that contains all those repos in separate folders to have one single repo.

Why do we want to do this? In my case I had two apps and one sdk for them, and it was inconvenient for me to push changes to three separate repos while I was working with these projects and sdk at the same time.

Let’s start.

Terminal setup to allow git to move all folders except one. We will need this later.

Create a new folder uremont-ios and initialize git repo:

Add remote of first old project uremont-client that we want to merge to the new git repo and fetch it:

Merge first old project uremont-client to the new repo:

Move all folders and files of that old project to the separate folder inside of our new project:

Commit changes:

Similarly merge second old project uremont-service to the new repo:

And third:

Finally, add a new remote to our new repo and push it:

Как стать хорошим разработчиком

Полностью согласен с тем, что написано в этой статье.

Чтобы быть хорошим разработчиком нужно:

1. Писать код качественно и быстро. Именно в этом порядке приоритетов. Не работающий, но быстро написанный код не принесет компании хороших результатов. Если не хватает времени – это проблема планирования и менеджмента, а не проблема разработчика.

2. Код должен быть читаемым и простым. Другие разработчики должны в нем легко разбираться. Отсюда следует, что код нужно хорошо комментировать, давать правильные названия сущностям (классам, объектам, методам).

3. Тщательно тестировать свою работу до того, как отдавать ее на тестирование. Лучше самому найти 90% багов и сдать качественный продукт, чем потом вычищать сотни багов, найденные другими людьми в течение нескольких итераций. Нужно избегать переделок.

4. Не жаловаться на проблемы, а решать их. Не измерять свою производительность количеством строк кода, а измерять количеством решенных проблем.

5. Сначала решать проблему, а затем уже начинать писать код.