2011-07-31 295 views
62

我是Git/Github的新手,需要一些幫助。 我想將文件從README重命名爲README.md。 我只有一個叫做「change-z-index」的回購。用Git重命名文件

1)我打開並登錄這樣的:

ssh -T [email protected] 

而且我輸入密碼。

2)我嘗試將文件重命名這樣的:

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

它給了我一個錯誤說壞源。

我想我需要先選擇我的回購...它的名字是「change-z-index」。我已經多次閱讀手冊,但仍然無法理解如何去做。

+0

'README'已經完全由git控制了嗎?你得到的錯誤提示'README'不存在,或者它不在git的索引中。 –

+0

@Charles Bailey當我訪問我的Github的網頁時,我可以在我的回購庫中看到自述文件 –

+0

我不熟悉github的詳細信息,但是您要在哪裏嘗試重命名文件,在本地克隆上還是在github服務器本身上? –

回答

108

據我所知,GitHub不提供shell訪問,所以我很好奇你是如何設法登錄的。

$ ssh -T [email protected] 
Hi username! You've successfully authenticated, but GitHub does not provide 
shell access. 

您必須在本地克隆存儲庫,在那裏進行更改,然後將更改推送到GitHub。

$ git clone [email protected]:username/reponame.git 
$ cd reponame 
$ git mv README README.md 
$ git commit -m "renamed" 
$ git push origin master 
+11

只需添加像我這樣的noobs,_using'git mv'會自動重命名您計算機上的文件_。我試着在使用'git mv'之前先將文件另存爲一個不同的名字,並且由於這個愚蠢的錯誤而遇到了錯誤'致命:destination exists'。 – MichaelChirico

25

可以重命名使用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%) 
+1

它給了我一個錯誤:不良來源,來源=自述文件,目標= README.md –

+0

你想重新命名它在github.com回購,或您的本地回購? – jaredwilli

+0

如果您嘗試在github上重命名它,則需要將其從本地回購庫$ rm file_name中刪除。做一個提交,然後將該文件重新添加到您想要將其更改爲並提交的名稱下的repo中。源文件和目標文件不匹配,因此出錯。我認爲這就是反正... – jaredwilli

3

做一個git status找出如果你的文件實際上是在你的索引或提交。

作爲初學者很容易誤解索引/分段區域。

我認爲它是一個'progress pinboard'。因此,我必須add該文件到插槽板之前,我可以commit它(即完整的插件板的副本),我必須在需要時更新插板,並且我也必須在完成後刻意刪除文件他們 - 只需創建,編輯或刪除文件不會影響插接板。這就像'故事板'。

編輯:正如其他人指出的那樣,您應該在本地進行編輯,然後推送更新的回購,而不是嘗試直接在github上編輯。

1

你有「壞狀態」,因爲它的目標文件無法找到或不存在,例如像你叫README文件這是不是在當前目錄中。

+0

確實這是我的問題。我忘記將當前目錄更改爲文件所在的位置。 – TheIT

41

需要注意的是,從2013年3月15日,你可以move or rename a file directly from GitHub

(你甚至不需要克隆該回購,git mv xxgit push回到GitHub的!)

renaming

You can also move files to entirely new locations using just the filename field.
To navigate down into a folder, just type the name of the folder you want to move the file into followed by / .
The folder can be one that’s already part of your repository, or it can even be a brand-new folder that doesn’t exist yet!

moving

+3

僅適用於可由GitHub編輯的文件。不適用於圖像文件等文件。 – A9S6

+0

@ A9S6誠然,這種說法是有道理的,因爲無論如何都不會顯示它們的內容(如文本)。 – VonC

+4

是的,但至少應該允許重命名他們的名字:) – A9S6

3

我有一個類似的問題通過教程去。

# git mv README README.markdown 

致命的:壞源,源= README,目的地= README.markdown

我包含在源文件中的文件類型:

# git mv README.rdoc README.markdown 

它完美地工作。不要忘了用即提交更改:

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

有時它是簡單的像那個小東西,那小便我們送行。 LOL