#git #github #open-source
Вопрос:
Я внес свой вклад в проект с открытым исходным кодом на GitHub. Есть только одна ветвь master
, и в моем регионе также есть одна ветвь с именем master
. Я внес свой вклад примерно 3-4 раза.
Когда я напишу git pull
это, покажи мне Already Up to Date
. Теперь проблема в том, что в открытом исходном коде есть некоторые изменения, но я не могу их обновить. Как будто у них 762 строки кода, README.md
но у меня только 722 строки кода. Я пытался,
- мерзавец тяни
- мерзавец принес
- сброс git —жесткий источник/мастер
- git fetch —все
- сброс git-твердая ГОЛОВА
- гит заначка
, гит тяни - git извлекает исходный
статус git
Помогите мне решить эту проблему безопасным способом, не теряя никаких локальных данных.
Комментарии:
1.
git fetch amp;amp; git diff origin/master master amp;amp; git show --format=%H -s origin/master amp;amp; git show --format=%H -s master
Последние две команды предназначены для сравнения идентификаторов фиксации головы.2. Я понимаю, что и то, и другое одинаково. Но все равно у меня 722 строки кода, а у них 762
3. Одинаковые идентификаторы фиксации означают, что у вас точно такой же файл.
git diff
Произвела ли какая-нибудь разница? Разница в количестве строк может быть объяснена проблемой с окончанием строки, которая требует дальнейшего изучения. Кстати, репо с открытым исходным кодом, вы можете свободно опубликовать его URL-адрес, чтобы мы могли проверить файл.4.
git diff
ничего не возвращает.git status
возврат на мастер ветви Ваша ветвь обновлена с помощью «origin/master». lt;brgt; Я говорю о разнице строк, потому что в открытом исходном коде есть еще некоторые обновления, которых у меня нет или которые я не могу получить.
Ответ №1:
Если он не показывает обновления, когда вы вытаскиваете, это, вероятно, потому, что вы разветвили проект. Источник, из которого вы толкали и вытягивали, — это источник для вашей раздвоенной версии.
Если вы распечатаете .git/config
для своего локального хранилища , вы сможете увидеть, так ли это. Просто запустите cat .git/config
в корневом каталоге репозитория.
Чтобы получать обновления от проекта, добавьте их репозиторий git в качестве восходящего:
git remote add upstream lt;git url to their projectgt;
Затем извлеките изменения из этого восходящего потока:
git fetch upstream
Вы можете увидеть, какие изменения они внесли с помощью git diff
:
git diff master upstream/master
Вопрос: Как вы внесли свои изменения в проект?
Если вы нажали, то, скорее всего, вы просто нажали на свою раздвоенную версию, а не на проект самостоятельно.
Если вы создали запрос на удаление, который был принят, то изменения были объединены.
Есть ли в их проекте ваши изменения? Это определяет, как действовать дальше.