Ваша ошибка просто означает, что vcvarsall.bat
не находится в папке, указанной в переменной среды PATH
. Вы можете исправить это двумя способами.
PATH
для включения папки, в которой находится vcvarsall.bat. cd
войти в папку, где находится vcvarsall.bat
, и вызывать vcvarsall.bat
. В моем случае (и по умолчанию), vcvarsall.bat
находится в следующий каталог:
C:\Program Files\Microsoft Visual Studio 9.0\VC\vcvarsall.bat
EDIT: для Visual Studio 2017 местоположение изменилось. Теперь он находится на:
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat
Во-первых, клонируйте удаленное Мерзавец репозиторий и cd в него:
$ git clone git://example.com/myproject
$ cd myproject
Затем, смотрят на локальные ответвления в Вашем репозитории:
$ git branch
* master
, Но существуют другие ответвления, скрывающиеся в Вашем репозитории! Вы видите, что они используют эти -a
флаг:
$ git branch -a
* master
remotes/origin/HEAD
remotes/origin/master
remotes/origin/v1.0-stable
remotes/origin/experimental
, Если Вы просто хотите взять быстрый быстрый взгляд на восходящее ответвление, можно проверить его непосредственно:
$ git checkout origin/experimental
, Но если Вы хотите работать над тем ответвлением, необходимо будет создать локальное ответвление отслеживания, которое сделано автоматически:
$ git checkout experimental
и Вы будете видеть
Branch experimental set up to track remote branch experimental from origin.
Switched to a new branch 'experimental'
, Что последняя строка бросает некоторых людей: "Новое ответвление" - ха? То, что это действительно означает, - то, что ответвление взято от индекса и создано локально для Вас. предыдущий строка на самом деле более информативна, поскольку она говорит Вам, что ответвление настраивается для отслеживания удаленного ответвления, которое обычно означает ответвление origin/branch_name
Теперь, если Вы смотрите на свои локальные ответвления, это - то, что Вы будете видеть:
$ git branch
* experimental
master
можно на самом деле отследить больше чем один удаленный репозиторий с помощью [1 110].
$ git remote add win32 git://example.com/users/joe/myproject-win32-port
$ git branch -a
* master
remotes/origin/HEAD
remotes/origin/master
remotes/origin/v1.0-stable
remotes/origin/experimental
remotes/win32/master
remotes/win32/new-widgets
На данном этапе вещи становятся довольно сумасшедшими, таким образом, работает gitk
для наблюдения то, что продолжается:
$ gitk --all &
git clone
, как предполагается, копирует весь репозиторий. Попытайтесь клонировать его, и затем работайте git branch -a
. Это должно перечислить все ответвления. Если тогда Вы хотите переключить на ответвление "нечто" вместо "ведущего устройства", используйте git checkout foo
.
Выборка, которую Вы делаете, должна получить все удаленные ответвления, но она не создаст локальные ответвления для них. При использовании gitk необходимо видеть удаленные ответвления, описанные как "remotes/origin/dev" или что-то подобное.
Для создания локального ответвления на основе удаленного ответвления сделайте что-то как:
git checkout -b dev refs/remotes/origin/dev
, Который должен возвратить что-то как:
Branch dev set up to track remote branch refs/remotes/origin/dev. Switched to a new branch "dev"
Теперь, когда Вы будете на ответвлении dev, "получение по запросу мерзавца" обновит Ваш локальный dev к той же точке как удаленное ответвление dev. Обратите внимание, что это выберет все ответвления, но только вытягивать то, которое Вы идете к верхушке дерева.
Когда Вы делаете "клон мерзавца git://местоположение", все ответвления и теги выбираются.
для работы сверх определенного удаленного ответвления, предполагая, что это - удаленный источник:
git checkout -b branch origin/branchname
Используйте мой инструмент git_remote_branch (Вам нужен Ruby, установленный на Вашей машине). Это создается конкретно для создания удаленных манипуляций ответвлением очень легкими.
Каждый раз, когда это делает операцию от Вашего имени, это печатает его в красном в консоли. Со временем они наконец вонзаются в Ваш мозг:-)
, Если Вы не хотите grb к командам выполнения от Вашего имени, просто используйте 'объяснить' функцию. Команды будут распечатаны к Вашей консоли вместо выполняемого для Вас.
Наконец, все команды имеют псевдонимы, для создания запоминания легче.
Примечание, что это альфа-версия программного обеспечения ;-)
Вот справка при выполнении справки grb:
git_remote_branch version 0.2.6 Usage: grb create branch_name [origin_server] grb publish branch_name [origin_server] grb rename branch_name [origin_server] grb delete branch_name [origin_server] grb track branch_name [origin_server] Notes: - If origin_server is not specified, the name 'origin' is assumed (git's default) - The rename functionality renames the current branch The explain meta-command: you can also prepend any command with the keyword 'explain'. Instead of executing the command, git_remote_branch will simply output the list of commands you need to run to accomplish that goal. Example: grb explain create grb explain create my_branch github All commands also have aliases: create: create, new delete: delete, destroy, kill, remove, rm publish: publish, remotize rename: rename, rn, mv, move track: track, follow, grab, fetch
Используйте это: https://github.com/marceloviana/allBranches
С единственной командой, загрузите все ответвления.
Синтаксис:
~$ allBranches /var/www/meuprojeto1/
ОБНОВЛЕНИЕ:
принятый ответ git branch -a
только [1 158] шоу удаленные ответвления.
Попытка к checkout
любое из тех ответвлений или перестанет работать, если у Вас больше не будет возможности соединения в удаленный репозиторий или в лучшем случае Вы будете в 'отдельном ГЛАВНОМ' состоянии.
заголовок вопроса подразумевает локальная копия каждого удаленный ответвление в Вашем клоне. Другими словами - мы хотим clone
содержать ВСЕ ответвления, доступные от [1 132] clone
самостоятельно, не имея необходимость соединять и загружать с remote/origin
сервер -" автономный клон с [1 160] все удаленные ответвления".
предложение с помощью git pull --all
достигает этого.
, Другими словами, выполненный: git clone http://user@repo.url ; git pull --all
действительно легко помнить git pull --all
, который ДЕЛАЕТ выпадающий все данные ответвления в Ваш clone
, готовый к Вам к контролю к Вашему локальному репозиторию. С этой командой, Вам не нужен доступ к сети к remote/origin
сервер больше к контролю удаленные ответвления ,
ПРИМЕЧАНИЕ: remote/origin branches
не будет иметь никаких обновлений отраженными в них, если у Вас больше не будет доступа к remote/origin
сервер. Их изменения только отразятся с даты и времени, Вы выполнили свою начальную букву git clone http://user@repo.url ; git pull --all
команды.
Кроме того, git pull --all
не будет контроль или создавать локальное ответвление из каждого удаленного ответвления для Вас. Для этого используйте одну из моих команд ниже или вручную работайте git checkout remote/origin/<branchname>
(даже если у Вас нет доступа к remote/origin
сервер еще). Используйте git branch -a
для раскрытия удаленных ответвлений, сохраненных в Вашем clone
репозиторий.
---
Конец ОБНОВЛЕНИЯ
ИСХОДНЫЙ ОТВЕТ:
Это должно добиться цели:
$ for i in $(git branch -a |grep 'remotes' | awk -F/ '{print $3}' \
| grep -v 'HEAD ->');do git checkout -b $i --track origin/$i;done
ИЛИ
, Если Ваш repo вложил ответвления тогда, эта команда примет это во внимание:
for i in $(git branch -a |grep 'remotes' |grep -v 'HEAD ->');do \
basename ${i##\./} | xargs -I {} git checkout -b {} --track origin/{}; done
вышеупомянутые команды будут checkout
локальное ответвление в Ваш локальный репозиторий, названный тем же как remote/origin/<branchname>
и устанавливать его на [1 123] изменения от удаленного ответвления по remote/origin
сервер, когда Вы выполните git pull
команда против Вашего локальный репозиторий.
Что касается,
$ git checkout - b экспериментальное происхождение / экспериментальное
с использованием
$ git checkout -t origin/experimental
или более подробное, но более легкое для запоминания
$ git checkout --track origin/experimental
может быть лучше с точки зрения отслеживания удаленного репозитория.