I found complete startups organization management solution with GitHub. As a startup Software development & technology team, we need to consider lots of things like project source code management, do teamwork, teams and build packages maintainability. In here we can configure everything in the same place. Finally, last but not last everything is free. 😇
Open this Url https://github.com/organizations/plan . Pick a Plan that suitable for the organization. Here we choose a free plan.
In here nothing complex just put organizational information like what will be organizational account name, contact email address and finally organizational type.
Note: Don't worry the information will be changeable in future.
After hit next we are able to get a welcome page like below, we don't need to invite everyone now, we can add them later to do so hit
Skip the step.
Congratulation Here, we have a homepage of our organization. we need to configure a couple of things we will make it later.
Settings tab and we have setting information. We can update easily require information. That information is related to the organization. So filling that information we can globally tell about an organization. It is pretty simple to configure.
Now choose the
Projects tab. This is a great window where we can find out which projects are going on about their metrics and more about project backlog related stuff.
Teams Tab. In this simple window, we are able to control different teams. We can create invite our team members. we can also discuss and collaborate in an individual team or Whole organization. It's is cool stuff?. Team communication and collaboration is easy.
People Tab. In this page all the people are visible, We can do the administrative task from here. Here we can change and permit user ownership and roles So that we can do the different level of organizational administrative job.
Packages Management. Github came with great feature. Now we can easily manage packages, binaries and build we can easily upload our common reusable packages and use them into projects. Not need to go for an external solution. Now Everything in on the same place.
Note: It has some pricing related issue, so check before using it.
Create Repository. As like as GitHub personal user account, Now we can create a personal organizational repository, It can be
This is an
Empty Repository Page. We can follow their guidelines, But before doing that we need to set up Git client So that we can execute those commands. Else if we have an existing project already then we can just simply upload it using drag and drop by selecting
upload and existing file blue link. But the command line is recommended and very convenient to do this. Once we are hands-on by dirty our hand, it will be really fun.
Before you can start using Git, you need to configure it. Run each of the following lines on the command line to make sure everything is set up.
🕹 Sets up Git with your name
git config --global user.name "<Your-Full-Name>"
🕹 Sets up Git with your email
git config --global user.email "<your-email-address>"
Keep in mind: This has all been said before.
- Separate subject from the body with a blank line
- Limit the subject line to 50 characters
- Capitalize the subject line
- Do not end the subject line with a period
- Use the imperative mood in the subject line
- Wrap the body at 72 characters
- Use the body to explain what and why vs. how
Summarize changes in around 50 characters or less More detailed explanatory text, if necessary. Wrap it to about 72 characters or so. In some contexts, the first line is treated as the subject of the commit and the rest of the text as the body. The blank line separating the summary from the body is critical (unless you omit the body entirely); various tools like `log`, `shortlog` and `rebase` can get confused if you run the two together. Explain the problem that this commit is solving. Focus on why you are making this change as opposed to how (the code explains that). Are there side effects or other unintuitive consequences of this change? Here's the place to explain them. Further paragraphs come after blank lines. - Bullet points are okay, too - Typically a hyphen or asterisk is used for the bullet, preceded by a single space, with blank lines in between, but conventions vary here If you use an issue tracker, put references to them at the bottom, like this: Resolves: #123 See also: #456, #789
Note:we can add multiple line commit using
The git branch is a very important concept. It becomes really helpful when project co-workers are frequently working on new features development. Also, It makes the project more maintainable & integrable. If we want to contribute on any Open Source project then we need branch.
git branch command is used to interact with Git's branches:
It can be used to:
- list all branch names in the repository
- create new branches
- delete branches
🕹 Create Branch
git branch latest git branch footer-fix
🕹 Switch Back and forth to different Branch.
To navigate into different branches using
git checkout footer-fix git checkout -b header-fix
git checkout -b header-fixcreate a new branch and make it
Active Branchin the code editor.
🕹 Delete Branch
git branch -d footer-fix
🕹 See All Branches At Once
git log --oneline --decorate --graph --all
🕹 Undo from selected Branch
# undo once, from commits git reset --hard HEAD^ git reset --hard master^ git reset --hard HEAD^ # undo twice, from commits git reset --hard HEAD^^
🕹 Merge into different Branch
git merge <name-of-branch-to-merge-in-[Eg.footer-fix]>
Active branch merge with given <name-of-branch-to-merge-in>
🕹 Syncs all the available remote branches
🕹 Push update or changes using
git push origin master git push origin footer-fix
When multiple teams and peoples are working on a single file or branch at the same time then merging conflict occurs. To avoid these types of occurrence, we need to avoid working on the same file & branch at the same time.
🕹 Merge Conflict Indicators Explanation
The editor has the following merge conflict indicators:
<<<<<<< HEADeverything below this line (until the next indicator) shows you
what's on the current branch
||||||| merged common ancestorseverything below this line (until the next indicator) shows you
what the original lines were
=======is the end of the original lines, everything that follows (until the next indicator) is
what's on the branch that's being merged in
>>>>>>>heading-update is the ending indicator of
what's on the branch that's being mergedin (in this case, the heading-update branch)
🕹 Resolving A Merge Conflict
Git is using the merge conflict indicators to show you what lines caused the merge conflict on the two different branches as well as what the original line used to have. So to resolve a merge conflict, you need to:
- choose which line(s) to keep
- remove all lines with indicators
Notes: finally make new commit after resolve it manually.
🕹 Git reset or revert local changes until commit
$ git checkout .
🕹 Changing The Last Commit
--amend flag, you can alter the most-recent commit.
like, Add Forgotten Files To Commit
git commit --amend
Now that I've made a commit with some changes, I can revert it with the git revert command
git log git revert <SHA-of-commit-id-to-revert>
SHA-of-commit-id-to-revertwill be founded by
- will undo the changes that were made by the provided commit
- creates a new commit to record the change
🕹 Change remote origin
$ git remote set-url origin https://github.com/mesadhan/sample-app.git
🕹 Remote origin status
$ git remote -v
Sometimes we back
^– indicates the parent commit
~– indicates the first parent commit
Here's how we can refer to previous commits:
The parent commit – the following indicate the parent commit of the current commit
The grandparent commit – the following indicate the grandparent commit of the current commit
The great-grandparent commit – the following indicate the great-grandparent commit of the current commit
To view commits history base on the number hit below command,
$ git rebase -i HEAD~2
Now Remove those commit from the list and save.
Optional, You can pull, if you want to sync with the latest work then below command,
$ git pull
Otherwise, permanently change your local and remote repository using below command,
$ git push origin master
git rebase -i HEAD~2, will show last two commits. we can change the number for more commit history.
Git tag uses usually when we release a version for a product. It is important to know how we can tag annotations,
🕹 add a tag with annotation and version
git tag -a v1.0 git tag -a beta
Sample Tag Commit message
Put Headline About Tag # # Write a message for tag: # v1.0 # Lines starting with `#` will be ignored
CAREFUL: In the command above (git tag -a v1.0) the -a flag is used. This flag tells Git to create an annotated flag. If you don't provide the flag (i.e. git tag v1.0) then it'll create what's called a lightweight tag.
Annotated tags are recommended because they include a lot of extra information such as:
- the person who made the tag
- the date the tag was made
- a message for the tag
Because of this, you should always use annotated tags.
🕹 Verify Tag & Tag History
After saving and quitting the editor, nothing is displayed on the command line. So how do we know that a tag was actually added to the project? If you type out just git tag, it will display all tags that are in the repository.
git tag git log --decorate
🕹 Deleting A Tag
git tag -d v1.0 git tag --delete v1.0
👌 Thanks for your time & passion. Feel free to ask me anything.
If you have any issues & queries. Follow me on Twitter