Перейменуйте файл за допомогою Git


81

Я новачок у Git / Github, і мені потрібна допомога. Я хотів би перейменувати файл з README в README.md. У мене є лише одне репо, яке називається "change-z-index".

1) Я відкриваю та входжу так:

ssh -T git@github.com

І я вводжу свою парольну фразу.

2) Я намагаюся перейменувати файл так:

git mv README README.md
git commit -m "renamed"
git push origin master

Це видає мені помилку, кажучи погане джерело.

Я думаю, що мені потрібно спочатку вибрати свій репо ... це назва "change-z-index". Я багато разів читав посібник, але досі не можу зрозуміти, як це зробити.


Це вже READMEточно під контролем git? Помилка, яку ви отримуєте, свідчить про те, що або READMEне існує, або що її немає в індексі git.
CB Bailey

@Charles Bailey Я бачу файл readme у своєму репо, коли я відвідую веб-сторінку мого Github
Badr Hari

Я не знайомий з деталями github, але де ви намагаєтесь перейменувати файл, у своєму локальному клоні або на самому сервері github?
CB Bailey

@Charles Bailey на самому сервері github
Бадр Харі

@BadrHari: Добре, я не знав, що сервери github розміщували непросте сховище з робочим деревом. Що трапляється під час запуску git statusна сервері?
CB Bailey

Відповіді:


132

Наскільки я можу зрозуміти, GitHub не забезпечує доступ до оболонки, тому мені цікаво, як вам вдалося ввійти в систему в першу чергу.

$ ssh -T git@github.com
Hi username! You've successfully authenticated, but GitHub does not provide
shell access.

Вам потрібно клонувати свій репозиторій локально, внести зміни там і перенести зміни на GitHub.

$ git clone git@github.com:username/reponame.git
$ cd reponame
$ git mv README README.md
$ git commit -m "renamed"
$ git push origin master

15
Просто додаю таким людям, як я, що використання git mvавтоматичного перейменування файлу на вашому комп’ютері . Перш ніж використовувати, я спробував зберегти файл під іншим іменем, git mvі fatal: destination existsчерез цю безглузду помилку я зустрів помилку.
MichaelChirico

41

Зверніть увагу, що з 15 березня 2013 року ви можете перемістити або перейменувати файл безпосередньо з GitHub :

(Вам навіть не потрібно клонувати цей репо git mv xxі git pushповернутися до GitHub!)

перейменування

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

переїзд


4
Працює лише з файлами, які може редагувати GitHub. Не стосується таких файлів, як файли зображень.
A9S6,

@ A9S6 Правда, такий вигляд має сенс, оскільки їх вміст і так не відображається (як текст).
VonC

5
Так, але принаймні слід перейменовувати їхні імена :)
A9S6

31

Ви можете перейменувати файл за допомогою команди git' mv:

$ git mv file_from file_to

Приклад:

$ git mv helo.txt hello.txt

$ git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#   renamed:    helo.txt -> hello.txt
#

$ git commit -m "renamed helo.txt to hello.txt"
[master 14c8c4f] renamed helo.txt to hello.txt
 1 files changed, 0 insertions(+), 0 deletions(-)
 rename helo.txt => hello.txt (100%)

2
Це видає мені помилку: погане джерело, джерело = README, пункт призначення = README.md
Бадр Харі

Ви намагаєтесь перейменувати його у репозиторії github.com або у вашому локальному репо?
jaredwilli

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

4

У мене була подібна проблема під час підручника.

# git mv README README.markdown

фатально: погане джерело, джерело = README, пункт призначення = README.markdown

Я включив тип файлу у вихідний файл:

# git mv README.rdoc README.markdown

і це спрацювало чудово. Не забудьте внести зміни за допомогою ie:

# git commit -a -m "Improved the README"

Іноді такі прості дрібниці нас розсерджують. Лол


3

Виконайте a, git statusщоб з’ясувати, чи ваш файл насправді знаходиться у вашому індексі чи коміті.

Початківцю легко неправильно зрозуміти індекс / область постановки.

Я розглядаю це як "прогресивний прогрес". Отже, я маю передати addфайл на пінборд, перш ніж зможу commit(тобто копію повної пінборду), я повинен оновити пінборд, коли це потрібно, і я також повинен навмисно видалити з нього файли, коли закінчу з ними - просто створення, редагування або видалення файлу не впливає на дошку. Це як "розкадровка".

Редагувати: Як зазначали інші, вам слід робити редагування локально, а потім натискати оновлене репо, а не намагатися редагувати безпосередньо на github.


1

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


Справді, це була моя проблема. Я забув змінити поточний каталог на те, де знаходився файл.
TheIT
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.