Sunday, September 12, 2021

 GitHub - Branching - time now 


Branching makes sure the code that is being delivered is in the best state possible. This feature can be utilised for isolating the development and testing of new features from working code that is running on a production environment. New applicaiton features should be build in a brach, test and then merged.

There should be

  1. Main branch (having the production code)
  2. Development Branch (latest code from main brach for developers)
    1. Feature Brach - Create new features taking the development brach code. Conventionally, new features are to be created in feature branches from the develop branch, and, once the feature has been developed, the code can be reviewed by a peer in a Pull Request and deployed to a test environment for Integration or User Acceptance Testing.

If all testing and reviews pass, the Pull Request can be approved and merged into the develop branch.

Releases : When there is a release approaching, a release candidate branch can be made. On this new branch, further testing of all the new features working together can take place, and more candidates can be made on this branch to amend any issues. Once merged into the master branch, the code can be tagged or marked as a release on the Git service that you are using. Changes must also be merged back into the develop branch, so that any changes that were made to the release candidate will also be included in future releases.

Commands for creating and deleting Branches
git branch

To create a new branch, the command is:

# git branch [NEW_BRANCH_NAME]
git branch develop

If you want to work on a new branch straight away, you can create a branch and checkout to it at the same time:

# git checkout -b [NEW_BRANCH_NAME]
git checkout -b develop

When you have finished working on your branch, and your code has been merged to main, it is good practice to delete the branch:

# git branch -d [BRANCH_NAME]
git branch -d feature-123

You can do this during Pull Request and if you aren't closing a Pull Request but still need to close a branch, delete a branch on your remote repository (again, likely on GitHub):

# git push --delete origin [BRANCH_NAME]
git push --delete origin feature-123
The key commands are summarised below:
git branch (check branches)
git branch [name] (create a branch with the name supplied)
git checkout -b [branch name] (checkout th branch)
git branch -d [branch name] (delete the branch - after your merge or work is finished)
git push --delete origin [branch name] (while completing pull request complete the delete branch too)

If you have queries, do drop in your queries below.

...HaPpY CoDiNg
Partha 

 GitHub - Forking - time now 

In simple languate, forking is creating a copy of an existing repository under your own account. Forking a repository allows you to freely experiment with a copy of the existing code base (if public), without the fear of breaking the original code base, and all this happens in your account. Forking also gives you the ability to contribute to a project, by adding additional functionality.

The steps would be:

  1. Fork the repository - In the origin repository you get this option (right corner of the page)
  2. Create a new branch - Command 
  3. Submit a pull request to the owner of the original project - If the owner approves your fix, your work should then be merged into the original repository.

Forking Steps

Fork a remote repository, configure upstream, (to get updates from the original repository) and propose a change to the owner

  1. While you are logged into your account, go to a public repository available.
  2. Click on "Fork", in the top right of this page. This will create a copy of the repository under your account. This will copy files in your account. 
  3. Now we will clone in "local". Copy the url and  will be redirected to your account's version of the repository, run command git clone [URL]
  4. CD to your folder. Run command git remote -v to confirm that you have cloned the correct repository. The output should show fetch and push, but the URL will be pointing to your repository.

Updating forked repository from original

Now that we have the local copy of the code, we will link to the source to keep getting updates when files chanages in source.  

  1. Run command git remote -v to make sure that the upstream to the original repository is not set up yet.
  2. In your browser, go to the original git repository and copy the repository URL (the one used for cloning).
  3. Execute the following comma git remote add upstream [URL] . Next check that this has worked, execute command git remote -v and check the fetch and push
  4. Now you will pull the changes from the original repository into yours, which you can do by executing the git fetch upstream command 
  5. You will want to update the main branch, so will merge the upstream/main into the local origin/main by executing the git merge upstream/main command and then git push
    origin/main branch.
The key commands are summarised below:
git clone [url] (after you have forked on the browser - url of from your account)
git status (keep checking the status)
git remote - v (check the which remote and source fork is being referred)
git remote add upstream [url] (url of the source - this will ensure updates are received)
git fetch upstream (get updated files from upstream)
git merge upstream/mail (merg local files from upstream main branch)
git push (update the local with your remote)

If you have queries, do drop in your queries below.

...HaPpY CoDiNg
Partha