101

(69 відповідей, залишених у Системи контролю версій (SCM, VCS))

Q-bart написав:

Виникло ще одне питання.

Вийшло наступне: я зробив комміт. Потім згадав що забув додати ще один файл, додав його зробив ще один комміт. Але додав я не той файл :) І тепер мені треба його забрати, ну щоб він був тільки в робочій папці а на сервер не відправлявся.

Що робити?

Команда для видалення файлу з репозиторію без його візичного видалення з диску:

git rm --cached mylogfile.log

Звісно, там де mylogfile.log - ваш файл

Після цього цей файл буде Untracked. Можете робити далі коміт без цього файлу

Vo_Vik написав:

Гм, тут здається трохи виникло недорозуміння. Я наприклад вибрав що користуюсь гуї. Хоча прекрасно можу без нього обходитись. Наприклад коли щось роблю по ssh на серваку, де просто гуї як такого нема. Причому пишу баш скрипти для автоматичного мердження і деплою тестових бранчів на тестові субдомени.

Але наприклад складний мердж мене легше робити в мелді ніж в вімі, ба навіть в нано легше ніж вімі) Тут тоже може бути холівар нано вс вім)

Чи припистимо при коміті використовую git gui, щоб точно знати які зміни я комічу. А вдруг у мене хтось спав на клавіатурі і крім мого коду в файлах є ще 2 сторінки пробілів з буквою о.

ПС: що за дурна мода комітити з флагом -a, фіг зна що там у вас зараз в репозиторії, як мінімум git статус спочатку і додавання файликів по одному. У мене через це постійна війна з фронтендом, бо в них в репах вічно якийсь треш валяється.

Справді, кожен для себе повинен вибрати інструмент. Так буде найкраще. Не варто продовжувати холіварити. Якщо комусь зручніше працювати в .... то хай там і працює. Все одно досвід з часом набувається і людина поступово вибере для себе те, що буде їй найзручшіне і найкраще. Комусь щось доказувати - безглуздо. Все одно ніхто тебе не почує )

А використовую я флаг -a тому, що який смисл добавляти всі файли окремо, коли потрібно додати всі файли ? :)

funivan написав:

А як же витягнення даних спочатку до себе ?

Особисто мені не так часто приходиться це робити.
В будь якому випадку, написати git pull теж не така важка задача.

І ми не зовсім в правильному напрямку холіваримо. Якщо вам не зручно використовувати консоль - ваша справа. Ви ж скоріше за все незнаєте про те, як працює автокомпліт консолі, не знайомі з vim, не ставите програми через репозиторії і так дальше. Правда ? Інакше таких спорів не виникало б.

В будь якому разі, ви сильно себе обмежуєте використовуючи гуі, тому що там просто немає всіх функцій.

Коли я вивчав перший раз вивчав git, мені порадили якусь gui програму. Я трохи порозбирався з нею, а потім мені написало помилку і щоби її вирішити, я мав зайти в коноль і написати то то і то то. Ох ... як я тоді з тим наморочився.

funivan написав:
BarsicPlus написав:

Признаюся, незручно використовувати гарячі клавіші, коли набираю текст не дивлячись на клавіатуру методом сліпого набору на швидкості близько 400 знаків на хвилину.

ви пишете код у програмі вірно?
Для того що б запушити свій код ви робите наступне:

  1. Відкриваєте термінал

  2. git pull

  3. git add

  4. git commit

  5. git push

Приблизно так.
Ви хочете сказати що це швидше ніж нажати 3-4 комбінації гарячих клавіш ?
я натискаю гарячі клавіші не дивлячись на клавіатуру (ctrl+t, ctrl+K, alt+i, alt+p)

Перепрошую за опечатку. Там де не дивлячись на монітор - МАЄ БУТИ КЛАВІАТУРА. Не то думав, коли писав :)
І мій набір команд трішки скорочений до ось такого вигляду:

  1. git commit -a -m "commit"

  2. git push

Тому це справді швидше.

funivan написав:

Я починав вивчати git користуючись консоллю. Але ось фраза наприклад:

BarsicPlus написав:

Крім того, що команди в консолі набрати значно швидше ніж тикати мишкою, є й інші переваги. Описувати їх не бачу смислу. Все ж очевидно.

А як же гарячі клавіші ?

Признаюся, незручно використовувати гарячі клавіші, коли набираю текст не дивлячись на клавіатуру методом сліпого набору на швидкості близько 400 знаків на хвилину.

Дуже цікаво. Продовжуємо холіварити? Ну що ж :)

Тут все зрозуміло. Git - це консольна програма. І всякі там графічні гіти - лише недороблені оболонки.
Як я вже писав, хочеш зрозуміти Git - вивчай консоль.

Крім того, що команди в консолі набрати значно швидше ніж тикати мишкою, є й інші переваги. Описувати їх не бачу смислу. Все ж очевидно.
Але признаюся, людям, далеким від *nix, vim і інших крутих шняжок може бути не дуже то й зручно мучитися в убогій windows консолі, але це не вагомий аргумен у відмовленні від консольного git.

Все що тут написано - особисто моє ІМНО

107

(69 відповідей, залишених у Системи контролю версій (SCM, VCS))

quez написав:

Заперечення гуя є дуже дискусійним.

Уявіть собі комміт: з'явилось кілька текстових файлів і кілька десятків зображень, частину з яких треба коммітити, частину ні, причому по назві не завжди можна сказати, що то за зображення. Скільки часу я такий комміт буду робити, як ви думаєте?

І це не виняткова ситуація, такі коміти в мене ледь не частіше, ніж редагування в парі файлів.

Шановний, Git - це консольна програма. Всі ті ваші графічні програми - лише недороблена оболонка.
Хочеш розуміти Git - вивчай консоль.

108

(69 відповідей, залишених у Системи контролю версій (SCM, VCS))

Q-bart написав:
git rebase --continue

https://i.imgur.com/yevTmua.png

Не знаю, в чому суть :)
Як кажуть програмісти: "Поки працює, не лізь  ;)"
Ну а взагалі .... то добре, що все получилося :)

109

(69 відповідей, залишених у Системи контролю версій (SCM, VCS))

Q-bart написав:

оновив скріни...

Згідно скріну у вас є файли, які не відслідковуються. Добавляйте їх в індекс

git add .

Потім комітьте і пробуйте

git push

До речі, чому мені здається, що у ви знаходитесь в іншій вітці ? Або не знаходитеся ....
в будь якому випадку написано про якийсь конфлікт. Виконайте ту команду, яка написана в консолі для того, щоби якось усунути той конфлікт

git rebase --continue

110

(69 відповідей, залишених у Системи контролю версій (SCM, VCS))

Анатолій написав:
Q-bart написав:
Анатолій написав:

Можливо щодо першопричини помилкової подачі push-у, можливо пан Q-bart, сам вніс комміти в центральному репозиторії, чи хтось інший якщо над проектом працює ще хтось.
А ситуація з цього приводу яка пане Q-bart?

Так я прямо з github вніс зміну в 1 чи  2 рядочках...

Дякую, я здогадувався що так краще не робити, бо може бути конфлікт,...
хоча чому не робити? можна але відразу зустрічне питання
- Яким чином узгодити версію на центральному репозиторію (де були внесені зніни) та на локальному репозиторію (де теж були внесені зміни)?

P.S. Питання до лінгвістів ".....репозиторію..." чи ".... репозиторієві..."  чи ... ?

В принципі, в таких випадках діють ось так: створюють нову вітку, потім беруть всі файли з старого якогось коміту і тоді вже обєднують вітки

111

(69 відповідей, залишених у Системи контролю версій (SCM, VCS))

Q-bart написав:

Але видає помилку:

error: Your local changes to the following files would be overwritten by checkout:

https://i.prntscr.com/69f80d50c6cc464cadd8323f76e3e760.png
https://i.prntscr.com/d1795068bdaf47aab51ac5224daf3da9.png

Не видно ваших стріншотів )

112

(69 відповідей, залишених у Системи контролю версій (SCM, VCS))

quez написав:
Анатолій написав:
BarsicPlus написав:

Файно. Дійте по інструкції що я дав вище. Для безпеки зкопіюйте ті файли в окрему папку.

Для безпеки? скопіюйте в окрему папку,-- недовіра до Git-а? :) До системи контролю версій, програми яка саме допомагає у випадку якщо хтось чим напартачив :)

Чув, що коли Місяць не в правильній фазі, git може напартачити так, що нічого не зробиш. Може хтось підтвердить або спростує.

git розроблявся для лінукса Торвальдсом, в результаті, всі лінуксоїди при помилці gita відразу скажуть що в когось криві руки :) Чесно, від помилок не захищений ніхто. Краще все таки перестрахуватися, я думаю. Якщо наприклад папка локальна /.git пошкодиться на компютері (тобто, вміст папки) ? Або ще щось станеться ? Тоді буде капець )

113

(69 відповідей, залишених у Системи контролю версій (SCM, VCS))

Анатолій написав:
BarsicPlus написав:

Файно. Дійте по інструкції що я дав вище. Для безпеки зкопіюйте ті файли в окрему папку.

Для безпеки? скопіюйте в окрему папку,-- недовіра до Git-а? :) До системи контролю версій, програми яка саме допомагає у випадку якщо хтось чим напартачив :)

Не знаю просто, як вийти з цьої ситуації :)
Хіба можна відразу git push спробувати, я не знаю )

114

(69 відповідей, залишених у Системи контролю версій (SCM, VCS))

Q-bart написав:
BarsicPlus написав:

А ну почекайте. Ви робити коміт сьогодні перед тим, як пушати файли на сервер ?
Якщо так, попробуйте виконати

git log --all

Є!!! *YAHOO*
Тут є нинішній комітт! *DANCE*

Файно. Дійте по інструкції що я дав вище. Для безпеки зкопіюйте ті файли в окрему папку.

115

(69 відповідей, залишених у Системи контролю версій (SCM, VCS))

А ну почекайте. Ви робити коміт сьогодні перед тим, як пушати файли на сервер ?
Якщо так, попробуйте виконати

git log --all

116

(69 відповідей, залишених у Системи контролю версій (SCM, VCS))

Все правильно, відновилося все, що було збережено в коміті 18 червня
Не варто було робити git pull

117

(69 відповідей, залишених у Системи контролю версій (SCM, VCS))

Значить давайте так. Якщо коміти зроблені локально, давайте ми попробуємо вернутися до попереднього.
Я не можу насліпо давати поради незнаючи нічого, що там у вас відбувається. Хіба що читайте офіційну документацію, там про це все розказано.

Значить я в попередньому повідомленні написав про команду

git log --all

Ця команда має відобразити всі ваші зроблені коміти. Копіюте назву найновішого коміту (виділено жовтим кольором така дуже довга назва) і далі пишіть

git checkout [назва коміту]

Це повернить вам ваші файли з попереднього коміту

Попробуйте зберегти ці файли собі окремо в тимчасову папку. Я не знаю точно, як можна поступити в даному випадку. Можливо попробувати git push відразу з цього коміту

Після цього вам потрібно вернутися "в майбутнє". Детальніше про машину часу читайте в документаціях.
Перейти на початок можна такою самою командою як я написав вище з вказівкою назви найновішого коміту або написавши команду

git checkout master

Ну і вже після всього цього пробуйте

git push

Ось вам посилання на статтю: http://tonyganch.com/git/reset/

118

(69 відповідей, залишених у Системи контролю версій (SCM, VCS))

Команда git log дозволить переглянути всі зроблені коміти.
Зараз подивимося на останній ваш зроблений коміт

119

(69 відповідей, залишених у Системи контролю версій (SCM, VCS))

Дайте будь ласка знімок всього консольного вікна розгорнутого на весь екран. Можливо саме важливіше ви спеціально обрізали в цьому скріншоті )

120

(47 відповідей, залишених у Залізо)

А раніше проблеми були? До заміни термопасти?