При возникновении конфликта слияния происходит непреднамеренное изменение кода для решения проблемы. Могу ли я проверить, работает ли другой человек в том же разделе кода, что и я, и сотрудничать до возникновения конфликта?есть проверка в git, чтобы избежать работы с одним и тем же фрагментом кода и избежать более позднего конфликта.
ответ
Git только узнает, что кто-то другой изменил репозиторий, когда вы спрашиваете его, произошли ли изменения или если вы пытаетесь его изменить. Короче говоря: нет. Однако общение с вашей командой за пределами git возможно. Желательно, даже.
Git - это DVCS (где D означает децентрализованное). Нет никакой информации о локальном копировании репозитория других соавторов.
Я предполагаю, что вы используете центральный пульт (git-сервер), и что вы имеете в виду, что неявное слияние, когда вы вытаскиваете из своего пульта после того, как другой соавтор нажал их изменения, приводит к конфликту слияния на вашем конце.
В следующем тесте remote - это ваш центральный репозиторий (это может быть URL-адрес, здесь это только локальный каталог, но git не волнует), foo - это ваша локальная копия и панель - ваш коллега.
mkdir gitTests
cd gitTests
#Create our remote (server)
git init --bare remote
#Create a new repo in directory foo
git init foo
cd foo
echo 'a' > a
git add a
git commit -m 'First commit'
#Set the remote as our central repo and push to it
git push --set-upstream ../remote master
#Create our colleague's repo from the remote
git clone ../remote ../bar
#Colleague makes a commit, pushes to remote
cd ../bar
echo 'b' >> a
git commit a -m 'Colleague commit'
git push
#We work on the same file, creating a merge conflict
cd ../foo
echo 'c' >> a
git commit a -m 'Our conflicting commit'
git push
#We get an error, because our push is non fast-forward, we need to pull before
git pull
#Here, we get a local merge conflict
Как вы, возможно, поняли, существует только конфликт, который вы пытаетесь протолкнуть. В этот момент на пульте отправляется только сообщение вашего коллеги, и вы можете позвонить им на свой стол, чтобы разрешить конфликт вместе. Как только это будет сделано, вы можете нажать, они тянут, и проблема решена.
Благодарим вас за ответ, мне потребуется немного времени для работы – rustystylus