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. š
š° 1. Open an Organization
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
.
Welcome and Users Invitation Page:
Congratulation Here, we have a homepage of our organization. we need to configure a couple of things we will make it later.
š° 2. Organization Settings
Select the 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.
š° 3. Projects Management
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.
š° 4. Teams Management
Now choose 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.
š° 5. People Management - Do Administrative Stuff.
Now choose 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.
Here is peoples management page:
š° 6. Packages Management
Now choose 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.
Here is package management page:
š° 7. Create a New Repository
Hit Create Repository
. As like as GitHub personal user account, Now we can create a personal organizational repository, It can be Public/Private
.
Here is - Package Management Page:
Here is - New Repository Creation Page:
š° 8. How to Publish Project Source Code
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.
Here is - Empty Repository Page:
https://dev-to-uploads.s3.amazonaws.com/i/1y0r0ms765y1d9kg5ydl.png
š° 9. Learn More about Git & Commands
š First Time Git Configuration
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>"
š The seven rules of a great Git commit message
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
For example:
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 usinggit commit
command
š Branching, Merging and Tagging
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.
The git branch
command is used to interact with Git's branches:
git branch
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
git checkout footer-fix
git checkout -b header-fix
Note:
git checkout -b header-fix
create a new branch and make itActive Branch
in 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]>
Note: Active branch merge with given <name-of-branch-to-merge-in>
š¹ Syncs all the available remote branches
git fetch
š¹ Push update or changes using
git push origin master
git push origin footer-fix
š Merge Conflict
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:
<<<<<<< HEAD
everything below this line (until the next indicator) shows youwhat's on the current branch
||||||| merged common ancestors
everything below this line (until the next indicator) shows youwhat the original lines were
=======
is the end of the original lines, everything that follows (until the next indicator) iswhat's on the branch that's being merged in
>>>>>>>
heading-update is the ending indicator ofwhat's on the branch that's being merged
in (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.
š Undoing Changes
š¹ Git reset or revert local changes until commit
$ git checkout .
š¹ Changing The Last Commit
With the --amend
flag, you can alter the most-recent commit.
like, Add Forgotten Files To Commit
git commit --amend
š The git revert Command
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>
This command:
-
SHA-of-commit-id-to-revert
will be founded bygit log
- 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
š Relative Commit References for Back and forth
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
- HEAD^
- HEAD~
- HEAD~1
The grandparent commit ā the following indicate the grandparent commit of the current commit
- HEAD^^
- HEAD~2
The great-grandparent commit ā the following indicate the great-grandparent commit of the current commit
- HEAD^^^
- HEAD~3
š Remove Local and Remote 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
Note:
Here, git rebase -i HEAD~2
, will show last two commits. we can change the number for more commit history.
š Git Tag Command
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
Top comments (0)