1

Здравствуйте, я еще новичок в освоении GIT для контроля версий.

По руководству ( Android Studio Git) понял как создавать репозиторий (в Android Studio) проекта и добавлять туда свой проекты. Однако у меня возникли некоторые сложности:

Когда добавил проект в репозиторий, все файлы слева окрасились в зеленый цвет. Но теперь когда я вношу изменение в один из java файлов. Например добавляю еще одно поле в класс. Этот java файл по идее должен окраситься в синий цвет, потому что произошли новые изменения и нужно сохранить эти изменения в Git. Но он этого не делает, java файл остается окрашеным в зеленый цвет. Это проблема с Android Studio или я что-то ни так настроил ?

Заранее спасибо большое за ответы.

foxis
  • 771
  • 1
    Думаю в AS нет таких инструментов, чтобы клонировать репозитории. Да и проще воспользоваться самим git, так как это его дела, а не IDE (студия все же не система контроля версий, а только использует ее). У git даже какой-то Git GUI есть при установке на компьютер, чтоб в консоли не набирать длинные команды всякие. – pavlofff Jun 01 '16 at 11:38
  • а коммит ты сделал добавленных файлов? – ivan K. Jun 01 '16 at 11:45
  • @pavlofff, спасибо большое за ответ. На самом деле, все то что я писал в своем вопросе я научился делать в программе sourceTree, мне она показалось проще и понятнее в освоении. Просто, мне коллеги сказали, что встроенные в среду разработки (в Android Studio к примеру) будут работать лучше и правильнее использовать непосредственно среду разработки для контроля версий, а не стороннюю программу (сами они правда в этой среде не работали). Вот я и пытался освоить git в Android Studio. – foxis Jun 01 '16 at 11:46
  • @ivanK. да, сделал. Все равно файл класса слева окрашен в зеленый цвет. Сейчас специально повторил процедуру. Т.е. закомитил, потом добавил новое поле в класс. Результат: никаких изменений класс остался зеленым. – foxis Jun 01 '16 at 11:49
  • @foxis не, ну правильно коллеги сказали .. и все что требуется в IDE для работы с VCS в Android Studio есть, но ваша задача несколько выходит за рамки применений IDE и контроля версий в ней - она же не должна реализовать весь функционал системы контроля версий. Насчет коммитов, может у вас в настройках автокоммит стоит? – pavlofff Jun 01 '16 at 12:00
  • @pavlofff, да согласен с вами мне еще важно ни только контроль версий но и резервирование. Честно говоря я пока особых проблем не вижу в применении стороннего ПО отличного от IDE для контроля версий и резервирования. Насчет коммитов: я еще новичок, подскажите пожалуйста где можно посмотреть настройку автокоммит ? Спасибо. – foxis Jun 01 '16 at 12:07
  • 1
    Я вот у себя посмотрел. Если подключен только локальный Git, то файлы при изменениях тоже не становятся синими, однако в VCS -> Local History -> Show History отображается, что изменения были. При коммите эти файлы предлагаются к переносу. Если к локальному Git подключен удаленный репозиторий (напр. GitHub), то тогда при редактировании становится синим. Может так и должно быть. – pavlofff Jun 01 '16 at 12:27
  • @pavlofff, спасибо за ответ. Да у меня тоже в Local Histori отображаются изменения. Видимо тогда, если удаленный репозиторий не подключен то изменения в виде смены цвета (с зеленого на синий) не производится. Еще раз хотел бы уточнить вопрос по клонированию. Получается на удаленный репозиторий (GitHub к примеру) можно клонировать с использованием инструментария Android Studio, а в локальный нельзя ? – foxis Jun 01 '16 at 12:40

2 Answers2

1

Отвечаю на первый вопрос:
Cреды разработки от IntelliJ используют следующую цветовую схему:

  • Белый - отслеживаемые файлы, которые не изменились с последнего коммита
  • Синий - отслеживаемые файлы, которые были изменены с последнего коммита. Вне зависимости от того, были они индексированы или нет.
  • Зелёный - неотслеживаемые файлы, которые были проиндексированы (git add). В том числе если они изменились с момента индексации.
  • Красный - неотслеживаемые файлы, которые не были проиндексированы
  • Серый - игнорируемые файлы

введите сюда описание изображения

Как можно заметить, среда разработки не различает два состояния:

  • Файл был проиндексирован и не менялся после этого
  • Файл был проиндексирован и после ещё изменён

Эти состояния хорошо различаются в консоли:

➜  git-coloring-example git:(master) ✗ git status -s
 M tracked-and-changed.py
A  untracked-and-indexed.py
?? .idea/
?? untracked-and-not-indexed.py

Первый символ означает статус файла в индексе, второй - в рабочей области. Вот мы проиндексировали первый файл:

➜  git-coloring-example git:(master) ✗ git add tracked-and-changed.py 
➜  git-coloring-example git:(master) ✗ git status -s            
M  tracked-and-changed.py
A untracked-and-indexed.py
?? .idea/
?? untracked-and-not-indexed.py

А теперь поменяем второй

➜  git-coloring-example git:(master) ✗ echo change > untracked-and-indexed.py 
➜  git-coloring-example git:(master) ✗ git status -s
M  tracked-and-changed.py
AM untracked-and-indexed.py
?? .idea/
?? untracked-and-not-indexed.py
Nick Volynkin
  • 34,094
  • @ NickVolynkin, спасибо большое за ответ. Получается у меня как раз тот случай, в котором файл проиндексирован, но уже успел измениться. Поэтому цветом это никак не фиксируется. А можно через Android Studio проиндексировать, не используя командную строку ? – foxis Jun 01 '16 at 13:21
  • 1
    @foxis можно, есть хоткей (наверное он зависит от ОС) и через контекстное меню. Но я вам настоятельно рекомендую освоить и командную строку тоже. Лучше когда есть выбор, чем когда его нет ) – Nick Volynkin Jun 01 '16 at 13:23
  • @foxis да, у вас тут получился вопрос из двух вопросов. На [ru.so] принято формулировать атомарные вопросы, так порядка больше и ищется лучше. Раз я ответил на первый - не могли бы вы второй вынести в новый вопрос? На него либо я отвечу либо кто-нибудь ещё. – Nick Volynkin Jun 01 '16 at 13:24
  • @ NickVolynkin, спасибо большое за ответ. Не могли бы вы показать команду (в консоли Git) для наглядности на конкретном примере. Например есть папка MyProject (с проектом в Android Studio, если это имеет конечно значение) . В нем есть java файл MyFile.java, который я бы хотел проиндексировать. Приведите пожалуйста пример хотя бы с одной командой чтобы понять суть. Заранее спасибо большое. – foxis Jun 01 '16 at 13:32
  • @ NickVolynkin, извиняюсь, про атомарность не знал. Сейчас перенесу второй вопрос в отдельную тему. – foxis Jun 01 '16 at 13:41
  • 1
    Про добавление: вот вам готовый ответ. Пример сейчас неудобно приводить, пишу с телефона. http://ru.stackoverflow.com/q/431839/181472 – Nick Volynkin Jun 01 '16 at 13:58
  • @ NickVolynkin, большое спасибо, за ответ с индексированием в командной строке вроде более менее стало ясно. – foxis Jun 01 '16 at 14:09
  • 1
    @foxis пожалуйста. А в качестве спасибо можно плюсануть ;) – Nick Volynkin Jun 01 '16 at 14:58
  • @ NickVolynkin, нет проблем, заплюсовал. :) – foxis Jun 01 '16 at 17:41
0

Вы можете использовать тот цвет, который вам понравится в ide Android studio введите сюда описание изображения