Примеры кодов
Для отслеживания удаленной ветки
git remote add -t master Hnr git://github.com/userName/files.git
Это не скачивает вам ветку. Он просто редактирует файл .git / config и добавляет несколько строк, которые сообщают Git, как, где и как получить данные удаленно.
Чтобы получить ветку вашего teamMate, запустите
git fetch Hnr
Чтобы увидеть, что у вас действительно есть ветка teamMates, запустите
git branch -a
или посмотреть только ветки ваших друзей
git branch -r
Приведенные выше две команды изначально вызвали у меня замешательство, поскольку я их не знал. Это заставило меня попробовать другие ненужные команды, чтобы иметь ветви для меня.
2-й способ получить ветку вашего друга
Однако учтите, что вы можете использовать git-clone для переноса кода вашего друга в отдельный каталог следующим образом
git clone UrlAtGithub
Тогда вы, очевидно, можете использовать Git-remote, как указано выше, чтобы иметь филиал в своем репозитории Git:
git remote add master Hnr PATH/ToYourFriendRepo.git
Вывод: Вы можете использовать два способа получить ветку вашего teamMate для вас, либо с помощью git-clone, либо без него. Оба способа требуют использования git remote add
. Преимущество последнего заключается в том, что вам нужно выполнять на одну команду меньше. Первый из них снова дает вам полное репо вашего teamMates на ваш жесткий диск.
Пожалуйста, ознакомьтесь с руководствами Git о том, как вы можете обновлять свои удаленные ветки. (NB удаленная ветвь может быть на вашем компьютере. Она не обязательно должна быть на удаленном компьютере. Ваша ветвь также может быть удаленной, но это ограничивает ваш рабочий процесс.)
Затем вы можете захотеть объединить конкретный файл вашего друга с вашей веткой.
В этом случае достаточно знать 5 первых букв коммита вашего друга, чтобы объединить файл.
[Я не уверен, как вы можете сделать следующее:] Вам нужно запустить, например,
git merge 76a32
Вы можете получить следующий вывод
CONFLICT (add/add): Merge conflict in shells/externalPrograms
Auto-merging shells/smallApps/extract
CONFLICT (add/add): Merge conflict in shells/smallApps/extract
Auto-merging shells/smallApps/extract~
CONFLICT (add/add): Merge conflict in shells/smallApps/extract~
Automatic merge failed; fix conflicts and then commit the result.
В этом случае ваши файлы значительно отличаются от файлов вашего друга, и Git не может решить, какой файл взять. Вам нужно запустить, по-видимому, следующее
git rebase
и вы получите
shells/smallApps/extract: needs merge
shells/smallApps/extract~: needs merge
cannot rebase: you have unstaged changes
Упражнение 1: Тем не менее, я сейчас застрял, так как мой тиг не показывает коммит моего друга в моем дереве Git.
Как вы можете получить коммит 76a32 вашего друга на ваше дерево Git какая ветка находится в вашем Git?
Возможно, теперь вы решили проблему. Проблема была в том, что я игнорировал разрешение конфликтов, о которых Git давал мне уведомления. Google снова сохраняет день на официальном сайте Git :
Если есть конфликты - например,
если один и тот же файл изменен в двух
разные способы в удаленной ветке
и местный филиал - тогда вы
предупрежден -
Следующая проблема - очистить проблемные детали и снова объединить.
В ваших проблемных файлах вы видите нечто похожее на следующее - получайте удовольствие! (Я наконец дошёл до реальных проблем;)
альтернативный текст http://dl.getdropbox.com/u/175564/exampleGitProblemSolving.png
Проблема с расхождением и слиянием dotFiles в Mac FileMerge
Мне нужно было обновить мой Git, так как только у самого нового Git есть команда difftool. Вы можете найти решение в теме .
Difftool позволяет запускать dotFiles в FileMerge с терминала. Вы не можете получить к ним доступ в графическом интерфейсе. Это работает как
git difftool master:README dev:README
Проблема с вашей учетной записью в Github после добавления новой удаленной учетной записи
Ваша учетная запись Github, возможно, исчезла в .git / config. В этом случае вам нужно запустить следующий код
git remote add -f YourUserName UrlIn@form.git
Затем вы можете заметить, что вы не можете нормально толкать git-push
git push origin master
Вы можете получить следующее сообщение об ошибке
fatal: 'origin' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
Вы также можете попробовать следующие команды для решения проблемы
git push Masi master
и все 3 под 2 перестановки маси, мастера и происхождения.
Однако ни одна из команд не сработала.
Упражнение 2 : Как вы можете зафиксировать свою учетную запись github, если у вас есть teamMate в вашем удаленном списке?
Origin - это короткое имя для вашего реального внешнего git-репо, например, на Github.
Содержимое вашей переменной происхождения может быть заменено другим удаленным репо.
В этом случае я рекомендую вам создать новую переменную
git remote add github git@github.com:myLogin/myProject.git
Обратите внимание, что у вас может быть origin2 вместо github. Origin - это просто соглашение по именованию репо.
Вы можете просто запустить
git push github master
Возможно, в вашем ssh-ключе есть пароль. Если у вас есть, вы можете получить разрешение отказано - предупреждение. Если вы это сделали, см. тему .