ФорумПрограммированиеPHP для идиотов → git и ветки

git и ветки

  • VaseninM

    Сообщения: 2416 Репутация: N Группа: Адекваты

    Spritz 7 ноября 2011 г. 0:16

    Вот решил юзать гитхаб. Появилась проблема в тот момент как решил ветки заюзать.
    У меня была ветка мастер с некоторыми изменениями. Там я начал делать возможность минусовать для одного проекта. Далее в ожидании дизайна я решил начать комменты и заодно научится с ветками работать.
    делаю:
    git checkout -b comments
    у меня создалась ветка комментс в том же состоянии в котором была мастер. Сейчас я нахожусь в комментс.
    Далее делаю:
    git reset –hard
    И теперь у меня трутся изменения в обоих ветках. Это я что то не так сделал?
  • VaseninM

    Сообщения: 2416 Репутация: N Группа: Адекваты

    Spritz 7 ноября 2011 г. 0:23, спустя 6 минут 23 секунды

    И да. Я не знаю в какой раздел было создавать эту тем, поэтому создал в традиционном)
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 7 ноября 2011 г. 3:17, спустя 2 часа 53 минуты 59 секунд


    Вот решил юзать гитхаб. Появилась проблема в тот момент как решил ветки заюзать.
    У меня была ветка мастер с некоторыми изменениями. Там я начал делать возможность минусовать для одного проекта. Далее в ожидании дизайна я решил начать комменты и заодно научится с ветками работать.
    делаю:
    git checkout -b comments
    у меня создалась ветка комментс в том же состоянии в котором была мастер. Сейчас я нахожусь в комментс.
    Далее делаю:
    git reset –hard
    И теперь у меня трутся изменения в обоих ветках. Это я что то не так сделал?


    Какие изменения? staged/unstaged? Или вообще untracked?
    Спустя 40 сек.
    Думаю у тебя труться untracked, потомучто они вообще не в бранче, вот и все.
    Спустя 165 сек.
    Вообщем когда ты сделал git reset –hard, то ты сбросил все изменения в HEAD, в том числе untracked изменения, то есть все новые изменения, которые ты не добавил (git add) будут сброшены и они не имеют отношения к ветке вообще.
    Спустя 158 сек.
    Чтобы изменения зафиксировались за веткой необходимо их закомитить:
    git co -b comments
    … тут что-то меняешь, добавляешь файлы …
    git add -p (а для новых файлов git add <файл>, или вообще git add .)
    git ci -m "каммент" (можешь git ci -am "каммент", вместо git add .)
    git co master

    вот тогда будут разные изменения в ветках
    Спустя 46 сек.
    Потом покажи
    git co master
    git log

    git co comments
    git log
    adw/0
  • Sinkler

    Сообщения: 8083 Репутация: N Группа: в ухо

    Spritz 7 ноября 2011 г. 3:47, спустя 30 минут 31 секунду

    закоммитить по ходу забыл
    Спустя 69 сек.
    хм, как тут появилось сообщение эдво получасовой давности)))
  • VaseninM

    Сообщения: 2416 Репутация: N Группа: Адекваты

    Spritz 7 ноября 2011 г. 7:47, спустя 4 часа 23 секунды

    Мистика на пiха.ру
  • VaseninM

    Сообщения: 2416 Репутация: N Группа: Адекваты

    Spritz 7 ноября 2011 г. 7:53, спустя 5 минут 21 секунду

    adw0rd, я сделал только init, потом два коммита (и пуша на гитхаб). Потом начал добавлять git add только новые файлы. И дальше как написано в первом посте.
    Что такое stage/unstage/untracked я не знаю. Но погуглю.
  • VaseninM

    Сообщения: 2416 Репутация: N Группа: Адекваты

    Spritz 7 ноября 2011 г. 8:01, спустя 8 минут 27 секунд

    git co master
    git: 'co' is not a git command. See 'git –help'.
    :)))

    Вот чекаут комментс
    git log
    commit 646a31e041292b6895b2792dc33c3f5bb5442a3c
    Author: Matvey Vasenin <vaseninm@gmail.com>
    Date: Fri Nov 4 00:10:32 2011 +0400

    Теперь будет использоваться история браузера при переходе по страницам

    commit a5ca43efca1917fc8b0456a77890b3fadfd1ff2a
    Author: Matvey Vasenin <vaseninm@gmail.com>
    Date: Thu Nov 3 23:42:15 2011 +0400

    .htaccess забыл

    commit b3c5797a3717b250e268874edfb0c21280354e4e
    Author: Matvey Vasenin <vaseninm@gmail.com>
    Date: Thu Nov 3 19:26:38 2011 +0400

    Исправил ошибочку. Временный файл удалил.

    commit a60f372da641e77d77b09976a837c963c717eb20
    Author: Matvey Vasenin <vaseninm@gmail.com>
    Date: Thu Nov 3 19:21:56 2011 +0400

    Залили исходники


    а вот чекаут мастер
    git log
    commit 646a31e041292b6895b2792dc33c3f5bb5442a3c
    Author: Matvey Vasenin <vaseninm@gmail.com>
    Date: Fri Nov 4 00:10:32 2011 +0400

    Теперь будет использоваться история браузера при переходе по страницам

    commit a5ca43efca1917fc8b0456a77890b3fadfd1ff2a
    Author: Matvey Vasenin <vaseninm@gmail.com>
    Date: Thu Nov 3 23:42:15 2011 +0400

    .htaccess забыл

    commit b3c5797a3717b250e268874edfb0c21280354e4e
    Author: Matvey Vasenin <vaseninm@gmail.com>
    Date: Thu Nov 3 19:26:38 2011 +0400

    Исправил ошибочку. Временный файл удалил.

    commit a60f372da641e77d77b09976a837c963c717eb20
    Author: Matvey Vasenin <vaseninm@gmail.com>
    Date: Thu Nov 3 19:21:56 2011 +0400

    Залили исходники

  • VaseninM

    Сообщения: 2416 Репутация: N Группа: Адекваты

    Spritz 7 ноября 2011 г. 9:53, спустя 1 час 51 минуту 22 секунды

    будь человеком, юзай алиасы, вот например мои:

    посмотрим чуть позже. Пока с оригинальным поработаю, а уж потом буду жизнь упрощать. Спасибо за алиасы. Буду разбираться.
    Я просто не хочу делать промежуточные коммиты доступными для общего доступа в гитхабе. При этом я хочу, что бы на гитхабе появилась ветка с промежуточными коммитами. Я так понимаю надо использовать модификатор a при промежу коммите в ветку. А при комите всюду просто -m?
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 8 ноября 2011 г. 16:20, спустя 1 день 6 часов 27 минут

    Я просто не хочу делать промежуточные коммиты доступными для общего доступа в гитхабе.

    так не пушай, в чем проблемы..
    Спустя 274 сек.
    Я так понимаю надо использовать модификатор a при промежу коммите в ветку. А при комите всюду просто -m?


    git commit -a
    это вместо
    git add . && git commit

    git commit -m
    это для ввода инлайн-сообщения к коммиту:
    git commit -m "Сообщение к коммиту"


    Смотри man git-commit

    -a, –all
    Tell the command to automatically stage files that have been modified and deleted, but new files you have
    not told git about are not affected.


    -m <msg>, –message=<msg>
    Use the given <msg> as the commit message.
    Спустя 167 сек.
    Я просто не хочу делать промежуточные коммиты доступными для общего доступа в гитхабе. При этом я хочу, что бы на гитхабе появилась ветка с промежуточными коммитами.

    Короче, git не решает задачи с пермишенами, на это есть gitosis и т.д., посмотри есть ли такая возможность у github, я не в курсе.
    adw/0
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 8 ноября 2011 г. 16:25, спустя 5 минут 33 секунды

    Надо задаться вопросом: "зачем мне ветка на гитхабе, которая нужна только мне и я не хочу чтобы её кто-то видел другой".
    Если ответ "хочу чтобы Вася, мой хороший друг, тоже её юзал", то тогда пушай в васю, а не в гитхаб и вот тебе солюшен.

    git co -b comments
    git ci -am "My message"
    > и вместо
    git push origin comments
    > юзай
    git push vasya comments

    но предварительно создай васю в .git/config, либо юзай полный путь:
    git push username@vasya.host:ourproject.git comments
    adw/0
  • VaseninM

    Сообщения: 2416 Репутация: N Группа: Адекваты

    Spritz 8 ноября 2011 г. 20:29, спустя 4 часа 4 минуты 1 секунду

    adw0rd, понятно это.
    Но про ветки невидимые коммиты ты меня не совем понял. Мне похер какие там дополнительные ветки на гитхабе будут. Мне главное, что бы человек мог скачать любой коммит и у него все работало. Но не запишутся ли коммиты от ветки при слиянии?
    Спустя 52 сек.
    Хотя на самом деле это заморочка какая то моя) Спасибо.

Пожалуйста, авторизуйтесь, чтобы написать комментарий!