2016-10-18 7 views
1

Мое требование состоит в том, что я хочу программно передать файл в удаленный базовый репозиторий (который находится в центральном месте, например https//:myproject.git).Можно ли зафиксировать файл в удаленном базовом репозитории с помощью JGit

Я хотел бы знать, можно ли зафиксировать файл в удаленном базовом репозитории (мастер), не клонируя базовое репо на мою локальную машину. Я новичок в JGit. Пожалуйста, дайте мне знать.

+0

мерзавец работает только на локальных файлах. Хотя у него есть возможности для синхронизации состояния между локальными и удаленными репозиториями, все обновления репозитория происходят локально. Вам нужно будет клонировать репозиторий, внести изменения и затем оттолкнуть их обратно на пульт. – larsks

ответ

1

Как уже указывалось @larsks, вам необходимо создать локальный клон удаленного базового хранилища. Изменения могут быть привязаны только к локальной копии базового репозитория. Наконец, нажав на исходный репозиторий, локальные изменения становятся доступными в удаленном репозитории для других.

JGit имеет Командный API, который моделируется после командной строки Git и может использоваться для клонирования, фиксации и нажатия.

Например:

// clone base repository into a local directory 
Git git Git.cloneRepository().setURI("https://...").setDirectory(new File("/path/to/local/copy/of/repo")).call(); 
// create, modify, delete files in the repository's working directory, 
// that is located at git.getRepository().getWorkTree() 
// add and new and changed files to the staging area 
git.add().addFilepattern(".").call(); 
// remove deleted files from the staging area 
git.rm().addFilepattern("").call(); 
// commit changes to the local repository 
git.commit().setMessage("...").call(); 
// push new commits to the base repository 
git.push().setRemote("http://...").setRefspec(new Refspec("refs/heads/*:refs/remotes/origin/*")).call(); 

PushCommand в приведенном выше примере, которые явным образом указывается удаленным нажать, чтобы и который ветви, чтобы обновить. Во многих случаях может быть достаточно опустить установщик и дать команде прочитать соответствующие значения по умолчанию из конфигурации репозитория с помощью git.push().call().

Для получения дополнительной информации, вы можете захотеть взглянуть на некоторые статьи, которые идут в более подробно cloning, making local changes и другие аспекты, как authentication и setting up the development environment

 Смежные вопросы

  • Нет связанных вопросов^_^