Git & Issues о одновременной командной работе - PullRequest
3 голосов
/ 17 декабря 2011

Я новичок в Git. У меня есть публичное репо на GitHub, и я и мой друг должны работать над проектом одновременно. Мы используем Netbeans 7.1, который имеет встроенные функции Git. Я могу клонировать и отправлять на GitHub, но, к примеру, учтите, что у нас есть следующая структура:

  • A.java
  • B.java
  • C.java

    1. Если пользователь # 1 меняет A.java, а пользователь # 2 меняет B.java, как мы их объединяем?
    2. Если и Пользователь № 1, и Пользователь № 2 меняют C.java, что происходит?

Существует удаленный / Fetch & Remote / Pull, и я не могу понять разницу. Мы будем работать над школьным проектом как 4 человека, и мы также хотим научиться контролю версий.

Ответы [ 3 ]

4 голосов
/ 17 декабря 2011

Что вам нужно, это базовый урок о git. Мне нравится этот: мерзавец Магия

Краткий ответ: git создан именно для этой цели. Вам просто нужно понять, как он объединяет и объединяет изменения от нескольких пользователей. Но это прекрасно работает, как только вы это понимаете.

3 голосов
/ 17 декабря 2011

git fetch извлекает изменения из удаленного репозитория git, но не изменяет ваши локальные филиалы, отслеживающие удаленные изменения. Git pull - это git fetch, за которым следует git merge в вашей локальной копии.

Обычно я делаю

git fetch
git status 
git merge

Слияния будут выполняться так же, как и любой другой SCM. В случае возникновения конфликтов вам будет предоставлена ​​возможность отредактировать / исправить их, а затем вам придется отправить изменения в удаленное хранилище, чтобы другие могли их увидеть. Пользователи также могут редактировать один и тот же файл, и изменения не приведут к конфликту, а просто объединятся.

1 голос
/ 17 декабря 2011

Использование git означает получение и последующее объединение.

Когда вы выполняете выборку, он просто получает обновленные данные репозитория, но не объединяет изменения в вашей локальной рабочей копии.

В случае ваших примеров:

  1. Git автоматически объединит изменения с вашей локальной рабочей копией.Поскольку изменения были в отдельных файлах (A.java и B.java), конфликта не будет, поэтому git просто обновит другой файл без проблем.
  2. В этом случае это зависит от того, где находятся ваши изменения.файл C.java против того, где их изменения.
    • Если они находятся в разных местах, git просто объединит изменения без проблем.
    • Если изменения находятся в том же месте в файле, git пометит файл как конфликтующий ипопросить вас вручную устранить различия.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...