Blog

  • CCNA Cyber Ops Certification

    CCNA Cyber Ops Certification

    From www.cisco.com:

    “The CCNA Cyber Ops certification prepares candidates to begin a career working with associate-level cybersecurity analysts within security operations centers.”

    You should see the chaos out there, both at the personal security level and at the enterprise level. I am surprised that hackers don’t do more damage, well maybe they do and we don’t know about it.

    My CCNA Datacenter is close to the renewal date, so I think it is a good idea to work on this certification because Cisco will renew my Datacenter while achieving this one. There will be a couple of nice books to study for sale on Amazon, but let’s make it fun a create a study guide. You can find the blueprints for these two tests here: Understanding Cisco Cybersecurity Fundamentals (210-250) and here: Implementing Cisco Cybersecurity Operations (210-255).

    I warn you, I will not write anything for this one, I will just point to the location of the useless knowledge, think of this page as your central command on where to find the information you need to study, in other words, I saved you the time to google it.

    1.0 Network Concepts

    1.1 Describe the function of the network layers as specified by the OSI and the TCP/IP network models.

    1.2 Describe the operation of the following

    1.2.a From Cisco: IP From Wikipedia: IP
    1.2.b From Cisco: TCP From Wikipedia: TCP
    1.2.c UDP
    1.2.d ICMP

    1.3 Describe the operation of these network services

    1.3.a From Cisco: ARP From Wikipedia: ARP
    1.3.b From Cisco: DNS From Wikipedia: DNS
    1.3.c DHCP

    1.4 Describe the basic operation of these network device types

    1.4.a From Cisco: Router From Wikipedia: Router
    1.4.b From Cisco: Switch From Wikipedia: Switch
    1.4.c Hub
    1.4.d Bridge
    1.4.e Wireless access point (WAP)
    1.4.f Wireless LAN controller (WLC)

    1.5 Describe the functions of these network security systems as deployed on the host, network, or the cloud:

    1.5.a Firewall: A firewall is a network security device that monitors incoming and outgoing network traffic and decides whether to allow or block specific traffic based on a defined set of security rules.
    1.5.b Cisco Intrusion Prevention System (IPS): An intrusion detection system (IDS) is a device or software application that monitors a network or systems for malicious activity or policy violations. (Generic IPS)
    1.5.c Cisco Advanced Malware Protection (AMP): Malware, short for “malicious software,” refers to a type of computer program designed to infect a legitimate user’s computer and inflict harm on it in multiple ways. Malware can infect computers and devices in several ways and comes in a number of forms, just a few of which include viruses, worms, Trojans, spyware, or any type of malicious code that infiltrates a computer. To find more information about the Cisco AMP click here. Cisco AMP is a next-generation endpoint security software that prevent breaches and continuously monitor all file behavior to uncover stealthy attacks. Detect, block, and remediate advanced malware across all endpoints.
    1.5.d Web Security Appliance (WSA): A security appliance is any form of server appliance that is designed to protect computer networks from unwanted traffic. Cisco Cloud Web Security (CWS): As a cloud-delivered web proxy, our Cloud Web Security product provides security and control for the distributed enterprise across one of the top attack vectors: the web. Users are protected on any device and in any location through Cisco worldwide threat intelligence and advanced threat defense capabilities.
    1.5.e Email Security Appliance (ESA): Cisco Email Security protects against ransomware, business email compromise, spoofing, and phishing. Cisco Cloud Email Security (CES)

    1.6 Describe IP subnets and communication within an IP subnet and between IP subnets

    1.7 Describe the relationship between VLAN‘s and data visibility: When properly configured, VLAN segmentation severely hinders access to system attack surfaces. It reduces packet-sniffing capabilities and increases threat agent effort. Finally, authorized users only “see” the servers and other devices necessary to perform their daily tasks. (See an example of data visibility from the security point of view here)

    1.8 Describe the operation of ACLs applied as packet filters on the interfaces of network devices: Access lists filter network traffic by controlling whether routed packets are forwarded or blocked at the router’s interfaces.

    1.9 Compare and contrast deep packet inspection (Deep packet inspection (DPI) provides the ability to look into the packet past the basic header information. DPI intelligently determines the contents of a particular packet, and then either records that information for statistical purposes or performs an action on the packet) with packet filtering (Packet filtering is a firewall technique used to control network access by monitoring outgoing and incoming packets and allowing them to pass or halt based on the source and destination Internet Protocol (IP) addresses, protocols and ports) and stateful firewall operation(tracks the operating state and characteristics of network connections traversing it. The firewall is configured to distinguish legitimate packets for different types of connections. Only packets matching a known active connection are allowed to pass the firewall)

    1.10 Compare and contrast inline traffic interrogation (An inline tool passes live traffic directly through a tool to process the live traffic before it is forwarded on to its final destination) and taps (A network TAP is a simple device that connects directly to the cabling infrastructure to split or copy packets for use in analysis, security, or general network management) or traffic mirroring (SPAN, Switch Port ANalyzer, is a software function of a switch or router that duplicates traffic from incoming or outgoing ports and forwards the copied traffic to a special SPAN, or sometimes called mirror, port)

    1.11 Compare and contrast the characteristics of data obtained from taps or traffic mirroring and NetFlow in the analysis of network traffic. (IEEE paper on NetFlow)

    1.12 Identify potential data loss from provided traffic profiles: an inline tool, such as Intrusion Prevention Systems (IPS), can drop or even add packets into the production network. Since it is running as an inline application, a tool failure could be devastating
    and bring down the entire system.

    Note: Not sure if “Data Loss” means the potential problems with the monitoring or the data lost to unauthorize users. The Following paragraph was taken from the Cisco Cloud Security 1.0, Design Guide => Chapter: End-To-End Visibility

    Detecting Data Loss
    Data loss describes the loss of critical business data to unauthorized users. Data loss typically involves a data breach and back end transmission of sensitive data such as credit-card data, patient or financial information. Detecting data loss is imperative for implementing security controls for various compliance regimes such as PCI DSS and HIPAA. However, data loss incidents are unintentionally undetectable.

    Data loss incidents normally involve asymmetrical outbound flows, in which outbound flows significantly outweigh a few inbound packets. Cisco CTD can trigger data loss alarms on such conditions. NetFlow generated flows contain flow direction, so Cisco CTD can leverage NetFlow generated flows and trigger data loss alarms on asymmetrical flows. Data loss events can be viewed using the data loss pane of the Cyber Threats Dashboard, as shown in Figure 4-13.

    Figure 4-13 Detected Data Loss

    data-loss

    Now that we’ve covered the basics, in future posts I will write about the remaining topics:

  • What’s New: vSphere 6.5

    What’s New: vSphere 6.5

    We have an announcement from VMware about vSphere 6.5. I will check this on VMware’s hand on labs (labs.hol.vmware.com) and try to synthesize it here. These labs a are sleek way to experience VMware products without the hassle of setting up everything in your personal lab.

    vCenter Server Appliance Native Protection

    This is one of the most awaited vCenter features. The previous method included manual re-configuration and/or a load balancer, the new way seems to simplify this by creating an  HA Cluster

    Screenshot 2016-11-14 10.39.38.png

    Another neat improvement is that now the user interface is entirely HTML, with no dependencies on flash or having a Windows VM handy to run the vSphere C# client. I am not sure I would ever stop using it, I am an old UNIX engineer that uses df -k instead of -h.

    The VUM (VMware Update Manager) is integrated with the vCenter Server Appliance, again removing the need for an extra Windows Server. The VUM enables centralized, automated patch and version management for vSphere.

    The Content Library (check my post here) added the capability of mounting an ISO to the VM directly from the library. I will have to re-visit my Content Library post because I’ve had more requests from clients to use this feature. You could even create a new VM from a template in the Content Library. It can also be synchronized between vCenter servers over HTTP.

    screenshot-2016-11-14-11-00-48

    The SIOC (Storage IO Control) can be configured in the storage policies and applied to the VM. With this, you can define IO limits, reservations, and shares that can be assign to VMs through the storage policy.

    VM-Storage-Policies.png

    The HTML5 Host Client is a new product designed to replace the functionality of the C# client. You can monitor resources and review logs  with it.

    Screenshot 2016-11-14 11.18.17.png

    And last but not least you can set up a KM (Key Management) server in the vCenter to use it to encrypt your VMs. I know I know, everything involving certificates is more complicated, but lately, it’s just a necessity if you don’t want to fall victim to vulture groups looking to make a quick buck encrypting your data.

     

  • UCS Manager – Create a VLAN

    UCS Manager – Create a VLAN

    In this post, we are going to create a VLAN in the UCS Manager, but we are going to use the latest HTML5 version. So let’s get started bu logging into the UCS Manager URL. Once there browse to the LAN tab, in the case of the new GUI shown here, the third icon on the left (counting from the top).

    ucs-manager_main_window

     

    Then browse to the VLANs section inside the LAN cloud. Remember to stay on the general LAN cloud instead that on inside the Fabric A or B.ucs_lan

    Now click the Add button in the top-right pane. The Create VLANs pop-up windows appeared, then choose a name (VLAN_704 in this case) and set the VLAN ID (704 in this case). Click OK

    vlanpop-up

    That is all for this post, the VLANs are used within the vNIC templates to pass the network communication from outside the UCS environment. Next time I will show you how to create Policies.

  • Quick Reference to FC Zoning on MDS

    Quick Reference to FC Zoning on MDS

    This is a quick reference to the commands used to configure the zoning in NX-OS. This is an existing setup, the switches should be initialized and at the recommended NX-OS level. Connect to the FC Switch using PuTTY and configure it using the following examples. Here I am using fcalias, but devalias is an option too. There are a couple of differences, fcalias is VSAN specific while devalias are not.

    show fcalias
    show zone
    show zoneset active

    show flogi database
    show fcns database

    FCALIAS
    conf t
    fcalias name <alias name> vsan 1
    member pwwn <wwpn>
    end

    ZONE
    conf t
    zone name <zonename> vsan 1
    member fcalias <fcaliasname>
    member fcalias <fcaliasname>
    end

    ZONESET
    conf t
    zoneset name <name> vsan 1
    member <zonename>

    end

    ACTIVATE ZONESET
    conf t
    zoneset activate name <active zoneset name> vsan 1
    end

    SAVE
    copy running-config startup-config

  • VMworld Day 1 – PEX

    VMworld Partner Exchange 2016 is in the books. I can only say one thing, it was outstanding. The sessions were top notch, the presenters could not be of higher caliber. The general session and keynotes were incredible, so much new technology is coming out this week. My first stop was the EUC and NSX Technical Deep dive session with Gabriel Maciel (@gmaciel_ca). The main idea here is that most solutions and applications (if not all) can take be paired with the three main use cases for NSX.

    • Security via micro-segmentation
      • One of the main characteristics of a virtual desktop is mobility. Desktops come and go and move around. It is really an intuitive approach to have a security policy follow that desktop everywhere it goes during its whole lifecycle.
    • Edge services like load balancers and distributed routing.
    • Network Virtualization

    The last two just apply to most cases. Better performance with the Edge services and even more mobility with Network Virtualization.

    My second stop was a follow up with a Horizon 7 Deep Dive session with Graeme Gordon. Reviewing the new features, what captured my attention was the Instant Clone capabilities, these reduce significantly the time to deploy the desktops using the Instant clone technology (vmFork). It is not the best option for every case, like when using vGPUs, but great if you hate recomposing pools.

    From there it was the PEX General Session, and there we heard the news that the Dell-EMC deal is progressing, that we can have control and freedom and that during this week we will have great news with the new announcements.

    2016-08-28 11.32.09

     

    The next stop was HCI in the Healthcare market, and there I felt better because I found out that the Windows Server 2003 problem from the medical devices is everywhere. After that, I’ve been eating, drinking and breathing NSX. I just realized in these two days that resistance is futile, if we don’t start solving our client problems using NSX, they will go to the cloud and NSX will catch them there anyway. I was joking earlier today about how VMware should change the name of Cloud Foundation and the Cross Cloud service to Skynet. Watch out Pat (@PGelsinger),  a Terminator may be coming this way to get you!

  • VMworld General Session

    VMworld General Session

    We are the tomorrow, people not customers. It is an intriguing way to get this general session started, nice performance. Pat inform us that Digital Transformation is the top tech buzz word. What does it mean to you? The digital transformation we are having now is all about the cloud. By 2020 the ratio of workloads on the cloud to traditional IT will be 50/50, by 2030 the public cloud will pass the 50% mark. How do we prepare? We can say with some certainty that less and less business are going to be investing in their own hardware and start using  more XaaS.

    2016-08-29 09.23.25.jpg This is why the be_tomorrow is us and is now. And to support this revolution VMware is a leader in the SDDC (software Defined Data Center) field. Pat introduces the cross-cloud architecture to provide freedom and control with the VMware Cloud Foundation.

    2016-08-29 09.34.36.jpg

    IBM is the first partner offering the Cloud Foundation as a service. They mentioned that they already have 500 customers using these services. the main idea of the cloud Foundation is to make the cloud simple.

    Screenshot 2016-08-29 09.40.14.png

    Going back to my first post yesterday morning about my Datacenter wishes, it seems that VMware is my genie. Now switching gears to the Cross-Cloud services from VMware. Is nice to see that VMware is not pretending to run any app, on any device, on their cloud, but the last part of that catch phrase really becomes any cloud.

    2016-08-29 09.45.46

    It is not possible to go back to our clients and tell them to stop using AWS or Azure, it is better to embrace their diversity and wrap the solution around those external services.

    We now have a layer that can move workloads between AWS, Azure, and Google. Micro-segmentation and network virtualization for the public cloud. This is huge! Any application, any device, and now for real any cloud!

    be_tomorrow together!

  • be_here

    be_here

    I am back at VMworld Las Vegas, and once again I am surrounded by the most creative group of people in my line of work. Last year we were ready for any, this year we’ll be_here. What is it that you want to be_? From the customer point of view, I want to have access to my applications from anywhere and all the time. From the engineering point of view, I want to design a system that can accomplish that in the most efficient and simple way possible. I am hearing wonderful things already, most involving NSX.

    One of the buzz phrases that I like the most this year is be_free, we want to be free to move our workloads with no borders, on-prem and off. We are getting there. What is your Datacenter wish list?  I know mine is to have one logical Datacenter span across multiple physical locations seamlessly.  I know that is already possible, some people are doing it. I also know that a huge number of users are not prepared for disasters, and sometimes they are not protected for even the most simple of events. I want to offer a solution that solves all the business continuity challenges in an implicit way. A turned key solution without a thousand parts glued by chewing gum, easy to scale both up and out, and one that can be upgraded with no downtime.

    All this is possible, and this week  I will be on the lookout for this new set of mind, don’t talk to me about old iron, and like an ex-coworker of mine used to say “don’t put lipstick on a pig”. I want to be_tomorrow.

  • Create WWNN and WWPN pools in UCS Manager

    Create WWNN and WWPN pools in UCS Manager

    This is part of a series of posts on how to initially configure you UCS B-Series system using UCS manager. With the information in this post, you will be able to configure the vHBAs needed for FC connectivity. Check the other posts under the Cisco section in my blog. If you are using iSCSI you can skip this step of the UCS B-Series configuration.

    To start login into your UCS Manager, select the SAN Tab and Navigate to the Pool section. Right click on WWNN and click Create WWNN Pool

    create-wwnn.png

    Give it a name, select Sequential and clock Next.

    Screenshot 2016-07-15 12.37.05

    Now add the value for the WWNN, first click add then fill the quantity (in this case 16) and cick Ok and Finish.

    Screenshot 2016-07-15 12.40.06The WWPN pool creation process is analog to the one just described, but chage one of the its on the WWN window (see below)

    Screenshot 2016-07-15 12.44.37

    That’s it for this post, I am trying to keep them short to keep them coming. On the next post, I will show how to create a VLAN.

     

  • UCS B-Series Start to Finish – Part 3

    UCS B-Series Start to Finish – Part 3

    Now that we have our system up to date with the latest software, we can start configuring the different templates, pools, and policies. The UCS is a stateless system, meaning that you will be able to abstract all the usual properties (UUID, MAC Address, etc…) into a Service Profile and apply those to any compatible hardware.

    • Create a Sub-Organization:  this step is recommended for multitenant implementations, it doesn’t hurt to make it the standard installation procedure. Right-Click on Sub-Organization to open the Create Organization window.

    Screenshot 2016-05-06 12.54.42

    • Create the UUID Pool: select the Server Tab, select Pools from the drop down menu, expand the Sub-Organizations and expand the new Sub-Organization (in this case Sub-Org-01). Select the UUID Suffix Pools and click Add.

    Screenshot 2016-05-06 13.16.50.png

    • Type in a name and select Sequential, then click Next

    Screenshot 2016-05-06 13.22.01

    • Click Add to define the value

    Screenshot 2016-05-06 13.22.21

    • Change one digit to make it unique and add in a decent size to configure it once and forget about it. the click Finish and click OK in the resulting pop-up window.

    Screenshot 2016-05-06 13.22.51

    • Create an IP address pool: this pool will be used to connect to the KVM for console access. First, navigate to the LAN tab and select Pools from the drop down menu, then under the Sub-Organization (Sub-Org-01 in this case) right click and select Create IP Pool.

    Screenshot 2016-05-11 11.16.09

    • Give at name, select Sequential and click Next

    Screenshot 2016-05-11 11.16.36

    • Click Add to define the IP address block.

    Screenshot 2016-05-11 11.16.56

    • Setup the IP address block information, you can do as many as you want, you can always add later, I usually configure one for each blade at the very beginning ad forget about it.

    Screenshot 2016-05-11 11.17.32

    • As a final step, click Next and then click Finish (assuming you won’t use IPv6).

    Screenshot 2016-05-11 11.17.53.png

    • Create a Server Pool: from the Servers tab, navigate to the Sub-Organization and with a right-click select Create Server Pool. Once there type in a name for the pool and click Next.

    create-pool.png

    • Select the blades and servers from the left pane and add them to the Pooled Servers pane, and click Finish.

    Screenshot 2016-05-11 08.13.12

    • Create the MAC Address Pools: We could use the default pool, or we can get very creative with this, especially if you are using VMware or any other host with multiple vNICs. The trick here is to Identify the FI, chassis, site, etc.
    The MAC address is going to be of the format 00:25:B5:00:00:00, the first part
    (00:25:B5) is the Organizationally Unique Identifier (OUI) and the second part
    (00:00:00) id the Device ID, and the second part is the one that we customize.

    Is with the second part that we will get creative. Use it to identify the site and FI, and I go even further and if the deployment is small I also identify the vSwitch. For example 00:25:B5:1A:00:00 could be Site 1, FI A, vSwitch 0, and the last three places are for sequential values. Check the following image with a few MAC Pools.

     

    Screenshot 2016-05-11 16.44.45.png

    In the previous image, you can see separate sets for management, vMotion, iSCSI, and VM traffic. You don’t have to do it exactly as I have it there, maybe you want to use the same vSwitch for management and vMotion, then you could designate one place as the vmk# for example. The next slideshow has the MAC Pool creation process.

     

    I am going to submit this post the way I have it up to this point and then release the next steps including:

    Create WWNN and WWPN pools (if you are using FC).

    Create VLANs.

    Create Policies.

    Create vNIC and vHBA templates.

    Create a Service Profile Template.

    Deploy Service Profiles from the Service Profile Template.

    Configure Especial Cases like Layer-2 Disjoint Networks

  • How to Use GitHub and Atom

    How to Use GitHub and Atom

    I’ve decided to learn a little bit more about how to use GitHub because I want to start writing some automation code for the UCS B-Series configuration. I did some research on which editor to use (I’ve only used vi, that was the last time I coded) and I found that Atom (www.atom.io) is really sleek and that it integrates with programming languages and you can git directly from it. I will try to present my findings in the next few paragraphs.

    In Summary:

    • Go to http://www.github.com and create an account by clicking the ‘Sign up‘ button on the top right.

    This slideshow requires JavaScript.

    • Create a Repository (project): You can Read the guide or Start a project directly:

    screenshot-2017-02-08-14-48-06

    • Copy the Clone/Download URL

    screenshot-2017-02-08-14-51-22

    • git clone the URL (If you don’t have git installed, check this post from Chris Chernoff explaining how to go about it).
    Mac:~ prmadness$ pwd
    /Users/prmadness
    Mac:~ prmadness$ which git
    /usr/bin/git
    Mac:~ prmadness$ git clone https://github.com/prmadness/new_project.git
    Cloning into 'new_project'...
    remote: Counting objects: 3, done.
    remote: Total 3 (delta 0), reused 3 (delta 0), pack-reused 0
    Unpacking objects: 100% (3/3), done.
    Mac:~ prmadness$  ls -ld new_project
    drwxr-xr-x  4 prmadness  staff  136 Feb  8 15:06 new_project/
    Mac:~ prmadness$ cd new_project/
    Mac:new_project prmadness$ pwd
    /Users/prmadness/new_project

    With the previous section, I demonstrated how to download or clone the project or repository into your computer. Now let’s move on to the Atom editor:

    • Download the Atom editor from www.Atom.io, then install and start the application.
    • Open the Atom editor and under the File menu click on “Add Project Folder”, Then select the project folder that came down from the git clone.

    screenshot-2017-02-08-15-29-09

    • In the Atom editor, write your python code and save the file to the repository folder using a .py extension. In this example, we will use the filename “ucs-config.py
    • If the atom-runner package is installed, you could execute the code directly from Atom pressing CTRL-R on your keyboard.
    • Go back to the command line (Terminal) and execute the following commands:
    Mac:$cd new_project/
    Mac:ucs-config prmadness$ pwd
    /Users/prmadness/new_project
    Mac:ucs-config prmadness$ git status
    On branch master
    Your branch is up-to-date with 'origin/master'.
    Untracked files:
      (use "git add ..." to include in what will be committed)
    
        ucs-config.py
    
    nothing added to commit but untracked files present (use "git add" to track)
    • Execute “git add ucs-config.py” and “git status” again
    git add ucs-config.py 
    Mac:ucs-config prmadness$ git status
    On branch master
    Your branch is up-to-date with 'origin/master'.
    Changes to be committed:
      (use "git reset HEAD ..." to unstage)
    
        new file:   ucs-config.py
    • Execute “git commit -m “message”
    Mac:ucs-config prmadness$ git commit -m "first commited file"
    [master c04a7ac] first commited file
     1 file changed, 6 insertions(+)
     create mode 100644 ucs-config.py
    • At this point, the new file is committed to the project in my laptop, but not synced up.
    • Execute “git push
    Mac:ucs-config prmadness$ git push
    warning: push.default is unset; its implicit value has changed in
    Git 2.0 from 'matching' to 'simple'. To squelch this message
    and maintain the traditional behavior, use:
    
      git config --global push.default matching
    
    To squelch this message and adopt the new behavior now, use:
    
      git config --global push.default simple
    
    When push.default is set to 'matching', git will push local branches
    to the remote branches that already exist with the same name.
    
    Since Git 2.0, Git defaults to the more conservative 'simple'
    behavior, which only pushes the current branch to the corresponding
    remote branch that 'git pull' uses to update the current branch.
    
    See 'git help config' and search for 'push.default' for further information.
    (the 'simple' mode was introduced in Git 1.7.11. Use the similar mode
    'current' instead of 'simple' if you sometimes use older versions of Git)
    
    Username for 'https://github.com': prmadness
    Password for 'https://prmadness@github.com': 
    Counting objects: 3, done.
    Delta compression using up to 8 threads.
    Compressing objects: 100% (3/3), done.
    Writing objects: 100% (3/3), 346 bytes | 0 bytes/s, done.
    Total 3 (delta 0), reused 0 (delta 0)
    To https://github.com/prmadness/ucs-config.git
       fab300a..c04a7ac  master -> master
    • If this was your first time pushing a file, execute “git config –global push.default simple” to get rid of the legacy message.
    • Everyone else who wants to have the latest revision of your project must execute a “git pull” if they already cloned the project or the “git clone URL” command to download the whole project.
    • All these git commands work when you are in the repository path/folder of your laptop, use the “pwd” command to check your current path.
    • Execute git with no arguments to display the Help:
    Mac:ucs-config prmadness$ git
    usage: git [--version] [--help] [-C <path>] [-c name=value]
               [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
               [-p | --paginate | --no-pager] [--no-replace-objects] [--bare]
               [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]
               <command> [<args>]
    
    These are common Git commands used in various situations:
    
    start a working area (see also: git help tutorial)
       clone      Clone a repository into a new directory
       init       Create an empty Git repository or reinitialize an existing one
    
    work on the current change (see also: git help everyday)
       add        Add file contents to the index
       mv         Move or rename a file, a directory, or a symlink
       reset      Reset current HEAD to the specified state
       rm         Remove files from the working tree and from the index
    
    examine the history and state (see also: git help revisions)
       bisect     Use binary search to find the commit that introduced a bug
       grep       Print lines matching a pattern
       log        Show commit logs
       show       Show various types of objects
       status     Show the working tree status
    
    grow, mark and tweak your common history
       branch     List, create, or delete branches
       checkout   Switch branches or restore working tree files
       commit     Record changes to the repository
       diff       Show changes between commits, commit and working tree, etc
       merge      Join two or more development histories together
       rebase     Reapply commits on top of another base tip
       tag        Create, list, delete or verify a tag object signed with GPG
    
    collaborate (see also: git help workflows)
       fetch      Download objects and refs from another repository
       pull       Fetch from and integrate with another repository or a local branch
       push       Update remote refs along with associated objects
    
    'git help -a' and 'git help -g' list available subcommands and some
    concept guides. See 'git help <command>' or 'git help <concept>'
    to read about a specific subcommand or concept.

    The preceding steps came from these two videos:

    Two things I learned after watching those videos:

    1. Add the terminal-plus package to Atom to open a terminal on you current repository and execute the git commands directly from the Atom editor.
    2. As an alternative to the command line add the git-plus package to use git directly from the Atom editor, after it is installed press “Command+Shift+P” to add, commit and push. To learn how to use git from atom check this video:

    As always, excuse my grammar and lack of details, I mostly write these blogs to be able to remember the things I use once a month.