2012-07-10 52 views
0

我需要做一個簡單的事情,但我只是找不到正確的方式...獲取文件,並添加到主存儲庫

我和其他開發人員使用相同的GIT分支上工作在雲存儲庫上。 他添加了一些代碼格式不正確且在本地提交但未推送到雲的文件。

我想通過使用git pull直接連接到他的.git文件夾來獲取這些文件。 我知道在這個階段GIT會爲我創建一個遠程分支和一個本地分支來保存這些文件。

我無法理解的是:

  1. 我能拉只有特定的文件?

  2. 如何將此文件添加到我正在處理的主分支中'編輯它們,然後將它們推送到服務器?

BTW:我想,以正確的方式將是創建一個臨時黨支部,從我朋友的機器推到它,拉我的機器上,然後將其推到雲,但在我的工作場所犯下不好格式化的代碼是有問題的...

回答

1

假設您可以連接到他的機器,並且git clone他的本地存儲庫,您將需要獲取他的分支機構並創建一個本地跟蹤分支。這聽起來像你已經覆蓋了這一點,但後代:

git remote add <repo> <his_repo_path> 

你不能只拉特定的文件。你可以做的就是打電話給你的他的分支一些獨特的版本,只是摘櫻桃承諾要結束你的服務器上:

git fetch <repo> <his_branch>:throwaway ;# this would call your branch 'throwaway' 

假設他的歷史(即throwaway歷史)看起來像A-B-C-D-E-F。如果你只是想提交BD,你可以抓住它們與摘櫻桃的主要分支:

git checkout <main_branch> ;# checkout your main branch 
git cherry-pick `B` 
git cherry-pick `D` 

大功告成。

還有一個我不推薦的「快速和骯髒」的解決方案,因爲這是不好的做法,但是如果你真的只需要一兩個文件就可以完成工作,使智能大小提交:

  1. git checkout -B trashme master ;# or whatever your main branch is
  2. 將文件複製過來。從字面上製作副本或讓他們通過電子郵件發送給您。
  3. 將它們移動到回購中,而trashme分支簽出。
  4. 在升級並提交它們之前將其編輯掉。
  5. 可以是cherry-pick那些提交或git merge trashme
+0

很好的解釋。謝謝。 – 2012-07-10 18:05:10

相關問題