2017-06-21 33 views
1

我對GitHub非常陌生,所以請原諒我的超級外行人術語。只從GitHub上的協作者存儲庫中提取一個文件

用戶A已將我作爲合作者添加到他的項目中。我是用戶B,我有他的項目副本。現在,我在本地對一個文件進行了一些更改,並將其推送到我自己的Github帳戶。我想知道用戶B現在只能將這一個文件(而不是所有更改的文件)拖到他自己的存儲庫中。

回答

3

從頭開始,你會做以下事情:首先叉他們的回購。然後克隆了你的叉子

git clone url_to_your_fork.git 

讓你想拍就

git checkout -b some/branch/name 

變化然後你就可以更改一個新的分支。只是提供一個單一的文件

git add some_file_name 

然後commit

git commit -m "your commit message" 

然後push

git push --set-upstream origin some/branch/name 

然後,你可以做一個「拉入請求」從分支到其他用戶的資料庫。

僅提供一個更改文件的關鍵在於git add期間。如果您git add *git add -u它將階段所有修改的文件,而不是一個特定的。

+1

感謝您的詳細解答CoryKramer,是否也有可能當其他用戶提出拉取請求時,他只能指定一個文件來拉取而不能獲取所有已更改的文件? – Sophia111

+0

不,你不能。你只能拉整個提交。提交是一組更改,因此您無法從提交中提取特定文件。 – CoryKramer

+1

@ Sophia111:沒有。 Git處理*提交*,而不是文件。每個提交都包含所有文件的完整快照,並且每個Git-to-Git傳輸操作都會複製整個提交。但是,假設你獲得了新的提交* X *,並且* X *本身只改變了一個文件,就以前發生的任何* X *而言。然後,您可以*合併與commit * X *相關的​​所有更改集合,並且*整個所有文件集合*只是一個文件。這就是上面提交的指令的作用:它們在整個提交因一個文件而不同的情況下進行一個全新的提交。 – torek

相關問題