2010-09-05 58 views
1

所以,我想對status.net(一個開源的Twitter克隆)進行一些更改。如何使用git修改開源項目並讓其他人更新項目而不會丟失我的更改

假設我想讓人們可以在他們的「推文」中添加字體,假設。

但是,我想不斷從status.net的人那裏得到更新......假設他們做了一些更改並修復了一些安全漏洞或添加了新的輔助功能。

所以,我會想

git clone <url to status.net repo> 

那麼,是什麼? :)

如何使我的更改,正確地將它們存儲在git中,並正確合併(?)與來自'net'的新更改?

與「(在這裏進行更改)」交織在一起的一系列命令將對我有所幫助。

謝謝!

回答

2

要做出改變,你首先要戴上你的程序員的帽子,做你一直都在做的事情。我真的不能幫你:-)

接下來,你會想提交你的更改。要提交,只需說:

$ git commit -a # -a means "automatically stage all changed files git knows about" 

並在提示符處鍵入描述性消息。請注意,在git中的「提交」確實是而不是公開您的更改。它只是承諾你的本地版本庫;直到你將來沒有人看到它,直到你git push

合併更改進入您的存儲庫拷貝其他人:

$ git pull 

如果你有到存儲庫的直接訪問,可以使git commit是你做早期可與公衆:

$ git push 

否則,您可以將您提交轉換成補丁並將它們發送到你的友好的維護者:

 
$ git log 
commit 75b17eeca0394e27759acf2f6b039851a5a28f98 
Author: Your Name 
Date: Tue Aug 10 01:10:19 2010 -0400 

    Did something wonderful. 

commit f9f677a465a5746874dc2f2c86cc444ffa28a020 
Author: Your Name 
Date: Fri Aug 6 04:06:01 2010 -0400 

    Fixed a horrible horrible error of mine. 

$ git show 75b17eeca0394e27759acf2f6b039851a5a28f98 > wonderful.diff 
$ git show f9f677a465a5746874dc2f2c86cc444ffa28a020 > fix.diff 

最後,如果你想新的文件添加到資料庫,說:

git add foo.html # don't forget to git commit -a like you would any change 

要刪除的文件,你可以簡單地刪除它們就像你通常會(與rm shell命令),然後git commit -a變化。

1

以下鏈接似乎處理所有的細節: http://status.net/wiki/IntroToUsingGit

,如果你希望別人看到你的資料庫,是不是在這一點清楚,如果你希望最終將更改推回到status.net主git存儲庫,以便集成者將主更改合併到主幹中。

相關問題