Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Best workflow when forking and renaming a GitHub project [closed]

I am trying to figure out the best workflow for working with a fork of an existing opensource project in Github. I want to take an existing project and make significant changes to it, in this case to port it to android and add specific android only functionality. I would like to satisfy the following:

  1. Be able to pull changes from their public repo to the new android port as the original code is updated.
  2. Be able to sumbit changes (via pull requests) to the orginal project when I fix bugs that aren't just applicable to the android port.
  3. Have a seperate renamed version of the project to make it clear that it is a Android port. I looked at renaming a fork and Github gave me huge warnings about doing this.

My initial thoughts are I would fork the original project then fork and rename my fork to give me the following repos:

original-author/projectA nicstrong/projectA nicstrong/projectA-android 

This would allow me to work on my local repo local/projectA-android push changes to nicstrong/projectA-android. Then to update from the orginal project I could rebase nicstrong/projectA to the latest from original-author/projectA then fetch/merge from nicstrong/projectA to local/projectA-android.

My questions are:

  1. I am quite new to the whole Git thing. Does this seem like a good approach? Or is there a better workflow for handling this scenerio?
  2. How would I handle pushing from projectA-android back to nicstrong/projectA so I can setup pull request for the original project?
like image 606
Nic Strong Avatar asked Apr 14 '11 09:04

Nic Strong


People also ask

Can I rename a forked project?

Previously, when you forked a repository the fork name would default to the same name as the parent repository. In some cases, that wasn't ideal because you wanted the fork to have a different name. Your only option was to rename the fork after it was created.

How do I rename a forked repository?

On GitHub.com, navigate to the main page of the repository. Under your repository name, click Settings. Under the Repository Name heading, type the new name of your repository. Click Rename.

Can you tell me some advantages of forking workflow over other Git workflows?

The main advantage of the Forking Workflow is that contributions can be integrated without the need for everybody to push to a single central repository. Developers push to their own server-side repositories, and only the project maintainer can push to the official repository.


1 Answers

1/ Yes, that seems the safest approach, as any modification you end up back-porting in nicstrong/projectA will be in a project with the same structure as original-author/projectA.
That means pull requests will be easier to organize, since you will be in a project mirroring the original author's project.

2/ If you have massive refactoring going on in nicstrong/projectA-android, I would make a backport branch, carefully merge or cherry-pick what you need from the numerous changes to the backport branch, and then push that branch to nicstrong/projectA.
(which means you have added nicstrong/projectA as a remote of nicstrong/projectA-android)

like image 163
VonC Avatar answered Oct 16 '22 02:10

VonC