Как использовать git для изменения проекта с открытым исходным кодом и позволить другим людям обновлять проект, не теряя мои изменения - PullRequest
1 голос
/ 05 сентября 2010

Итак, я хотел бы внести некоторые изменения в status.net (клон Twitter с открытым исходным кодом).

Допустим, я хочу сделать так, чтобы люди могли добавлять шрифты в свои «твиты», гипотетически.

Но я хочу получать обновления от пользователей status.net ... Допустим, они вносят некоторые изменения и исправляют некоторые дыры в безопасности или добавляют новую вспомогательную функцию.

Итак, я хочу

git clone <url to status.net repo>

Тогда что? :)

Как мне внести изменения, правильно сохранить их в git и объединить (?) С новыми изменениями, поступающими из сети?

Последовательность команд, переплетенных с "(внесите свои изменения здесь)", очень мне поможет.

Спасибо!

Ответы [ 3 ]

2 голосов
/ 05 сентября 2010

Чтобы внести изменения, вы сначала надеваете шляпу программиста и делаете то, что делаете всегда. Я действительно не могу вам помочь: -)

Далее вы захотите зафиксировать свои изменения. Чтобы совершить, просто скажите:

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

и введите в подсказке описательное сообщение. Обратите внимание, что "commit" в git не делает ваши изменения публичными. Он просто фиксирует вашу локальную копию хранилища; никто не увидит это, пока вы не git push в будущем.

Чтобы объединить изменения, сделанные другими людьми, в вашу копию хранилища:

$ git pull

Если у вас есть прямой доступ к хранилищу, вы можете сделать git commit s, которые вы сделали ранее, доступными для общественности:

$ 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 голос
/ 05 сентября 2010

Следующая ссылка, кажется, имеет дело со всеми деталями: http://status.net/wiki/IntroToUsingGit

На данный момент неясно, хотите ли вы, чтобы другие видели ваш репозиторий, и хотите ли вы в конечном итоге подтолкнуть вас к изменению статуса.net основной репозиторий git, чтобы интегратор мог объединить ваши изменения в основной ствол.

0 голосов
/ 05 сентября 2010

Возможно, вы не сможете отправить свои изменения обратно, если вы не являетесь доверенным разработчиком.В этом случае вы начнете посылать им «запрос на извлечение».В этой статье рассказывается, как это сделать: http://www.kernel.org/pub/software/scm/git/docs/git-request-pull.html

...