git bash: как проверить, доступен ли новый коммит - PullRequest
8 голосов
/ 15 мая 2011

Я использую git с моим другом для совместной работы над проектом. Он создал репозиторий в github, состоящий из папок с каждым из наших имен, поэтому каждый раз, когда я что-то обновляю, я загружаю его в эту папку, затем отправляю в github, и он тоже. Поэтому каждый раз, когда появляется новый коммит, мы должны извлечь из github и скопировать вставить отредактированные файлы на наш собственный localhost (wamp).

Итак, что я хочу спросить:

  1. Как проверить, есть ли новый коммит из git bash без проверки github? Git Pull потянет последнюю версию, которую я знаю, но что, если я просто хочу проверить в первую очередь?

  2. Скажем, моя папка git находится в D: // git / project_name. Могу ли я скопировать эту папку в другое место (например, USB-флеш-диск), а затем сделать git pull с этого USB?

  3. Если наш метод неэффективен, есть ли у вас какие-либо предложения о том, как мы должны использовать git? Мы используем платформу CodeIgniter, поэтому сначала я предложил просто нажать git на целые папки CodeIgniter, но мой друг сказал, что это опасно (потому что весь конфиг и база данных есть) и ненужно (так как основная системная папка, скорее всего, останется нетронутой ). Таким образом, мы используем этот текущий метод (имея две папки с нашими именами и нажимая и вытягивая каждый раз, когда есть обновление.

Ответы [ 2 ]

11 голосов
/ 15 мая 2011

Отвечая на первые два вопроса по очереди:

  1. Предполагая, что origin относится к репозиторию GitHub в каждом случае, вы должны просто запустить git fetch origin.Тогда «ветвь удаленного отслеживания» origin/master будет в версии master на GitHub, и вы можете сравнить ее с вашим мастером с git diff master origin/master, чтобы увидеть разницу между этими двумя версиями, или git log master...origin/master, чтобы увидеть коммиты, которыеуникальны для master или origin/master.
  2. Да, вы можете скопировать репозиторий на USB-накопитель и извлечь его оттуда.Однако, если вы хотите подключить USB-ключ к другому компьютеру, вам нужно настроить пульт, который будет указывать расположение хранилища на USB-ключе.

Относительно того,есть лучший способ сделать то, что ты делаешь, боюсь, я недостаточно четко понимаю, что ты делаешь или пытаешься достичь, чтобы комментировать разумно.Однако наличие в хранилище папок, названных в честь каждого разработчика с (по-видимому) очень похожим исходным кодом в них, звучит немного подозрительно - обычно вы используете ветки для работы с различными версиями одного и того же кода.

4 голосов
/ 15 мая 2011

Если ваша ветвь правильно отслеживает удаленную ветку, вы сможете выполнить git status и посмотреть, находитесь ли вы впереди или позади пульта и сколько коммитов.

Это немного смущало меня из-за мерзавца. Вот ответ в трех частях:

1) Обычно, когда вы клонируете удаленное репо, вам необходим флаг -t для отслеживания копируемой удаленной ветви:

git checkout -tb my_branch origin/my_branch

2) Если вы забыли это сделать, вы всегда можете сделать это позже, выполнив:

git branch --set-upstream my_branch origin/my_branch

3) Если ваши удаленные ветки имеют то же имя, что и ваши локальные ветки, вы можете просто установить git для автоматического отслеживания всех удаленных веток:

git config push.default matching             <-- for this repo only
git config --global push.default matching    <-- for all git repos that this user deals with on this machine

Что касается вашего второго вопроса, да, это будет хорошо, если вы используете того же пользователя на своей машине. Git использует аутентификацию SSH, поэтому не имеет значения, где находится репозиторий, пока правильный пользователь запускает команду, поэтому он отправляет надлежащие учетные данные SSH вместе с запросом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...