2013-12-08 36 views
1

如果我想通過分叉/克隆現有的git倉庫來開始一個項目,並且繼續在這個新分支上工作,我的工作流程應該如何?如何通過我已分叉的回購來保持最新狀態?

我會繼續從最初分支的回購中提取新的提交。

會不會是

  1. git clone
  2. git checkout -b myNewBranch
  3. 進行一些更改,並承諾
  4. git rebase master
  5. 進行一些更改,並承諾
  6. git rebase master
  7. ...
+0

聽起來你使用Git錯誤。你爲什麼想做這個? –

+0

@MartinBean你爲什麼認爲這是錯的? – jszakmeister

+0

@jszakmeister似乎是一種使用已經分散的東西的低音吶喊方式。你能不能維護多個遙控器,從一個遙控器中拉出來,然後用你的改變推到另一個遙控器上? –

回答

3

是的,除非你需要實際設置其他遠程爲了得到從原來的存儲庫的更新,然後做從倉庫去取。 我會假設你分叉某人庫做到這一點,如果是這樣的話,那麼我會做

  1. 叉使用網站上的按鈕在GitHub上的原作者信息庫(見圖片下面)。
  2. 在您自己的github用戶名/資源庫頁面上覆制克隆圖標的地址。
  3. 在本地,在命令行/終端... git clone ...然後cd the_repo_name/
  4. git checkout -b myNewBranch
  5. 進行一些更改和添加並提交它們,然後git push origin master
  6. 添加original_username爲另一遙控器,例如作者(git remote add ....)
  7. git fetch author master#獲取更新到您的臨時區域。
  8. git rebase author/master#重播你的本地修改的新更新的頂部
  9. 解決任何衝突
  10. 進行一些更改,並承諾再git push origin master
  11. git fetch author master
  12. git rebase author/master
  13. 解決任何衝突
  14. ...

說明:

git remote -v對於顯示現有的遠程(s)是有用的。
只有在編輯了相同的代碼行(衝突)時才需要執行步驟9,13,...。
第8步可能是最關鍵的:你可以在任何分支,並從git rebase git_repo_src/branch_name'拉入'最新的變化形式,rebase會'保存'你的變化,添加新的變化,然後按時重播你的編輯。如果編輯了相同的行(通常不是),則需要解決合併衝突。這意味着手動編輯文件。

添加另一個遠程Git例如:git remote add author smithb/repo_name.git

凡項目在github上:

Fork       Cloning - copy (ctrl-c, etc.) the HTTPS: Clone URL 
Click the button "Fork"  (click the button in some browsers prob. flash): 
in the original repo.  Then, at a local terminal window `git clone <paste>` 

enter image description hereenter image description here

+0

謝謝〜!你會如何命名你最初從中分離出來的遙控器? – Nyxynyx

+0

當爲了獲得更新而添加它時,我會把它稱爲'作者','源'等。我被'原創'誘惑,但它似乎太接近'起源',你知道。 –

+0

添加筆記中添加遠程的示例。 –

相關問題