用Git重命名文件


78

我是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当我访问Github的网页时,我可以在回购中看到自述文件
Badr Hari

我不熟悉github的详细信息,但是您要在哪里尝试在本地克隆或github服务器本身上重命名文件?
CB Bailey

github服务器本身上的@Charles Bailey
Badr Hari

@BadrHari:好的,我不知道github服务器托管了一个带有工作树的非裸仓库。git status在服务器上运行时会发生什么?
CB Bailey

Answers:


129

据我所知,GitHub不提供shell访问,所以我很好奇您最初是如何登录的。

$ 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 mvfatal: destination exists由于这个愚蠢的错误,遇到了错误。
MichaelChirico

41

请注意,自2013年3月15日起,您可以直接从GitHub移动或重命名文件

(您甚至不需要克隆该存储库,git mv xx然后git push回到GitHub!)

重命名

您也可以仅使用文件名字段将文件移动到全新的位置。
要向下浏览到文件夹,只需键入要将文件移动到的文件夹的名称,然后输入/
该文件夹可以是您的存储库中已经存在的文件夹,甚至可以是尚不存在的全新文件夹!

移动


4
仅适用于可以由GitHub编辑的文件。不适用于图像文件之类的文件。
2014年

@ A9S6是的,这种说法很有意义,因为它们的内容始终不会以文本形式显示。
VonC 2014年

5
是的,但至少应重命名它们的名称:)
A9S6(2014年

31

您可以使用gitmv命令来重命名文件:

$ 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.md
Badr Hari

您是否要在github.com仓库或本地仓库上重命名它?
jaredwilli 2011年

如果要在github上重命名,则需要将其从本地仓库$ rm file_name中删除。进行提交,然后将该文件重新添加到您要更改为该文件名的仓库中并提交。源文件和目标文件不匹配,因此出现错误。我认为这就是事实……
jaredwilli 2011年

4

我在学习教程时遇到了类似的问题。

# git mv README README.markdown

致命的:错误的源,source = README,destination = README.markdown

我在源文件中包括了文件类型:

# git mv README.rdoc README.markdown

而且效果很好。别忘了用以下方法提交更改:

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

有时候,像这样简单的小事情会惹恼我们。大声笑


3

执行agit status来查找文件是否确实在索引或提交中。

作为初学者,容易误解索引/登台区域。

我将其视为“进步的标语牌”。因此,我必须add先将文件保存到固定板上commit(即完整固定板的副本),必要时我必须更新固定板,并且在处理完文件后还必须故意从中删除文件-只需创建,编辑或删除文件,就不会影响插件板。就像“讲故事”。

编辑:如其他人所述,您应该在本地进行编辑,然后推送更新的存储库,而不是尝试直接在github上进行编辑。


1

因为目标文件找不到或不存在,所以您具有“状态错误”,例如,您调用的README文件不在当前目录中。


确实这是我的问题。我忘记将当前目录更改为文件所在的位置。
TheIT
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.