Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 44 additions & 0 deletions advanced/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,34 @@ redirect_from:
- ../workbooks/github-advanced.html
---

---

<span class="mega-octicon octicon-microscope"></span>

# GitHub Advanced

Command line deep dive, problem solving techniques, and GitHub efficiencies

<div class="objectives">
<input type="checkbox" id="obj1"><label for="obj1">Understand and apply commit DAG concepts</label>
<input type="checkbox" id="obj2"><label for="obj2">Create tag release on GitHub and command line</label>
<input type="checkbox" id="obj3"><label for="obj3">Apply ignore patterns to projects</label>
<input type="checkbox" id="obj4"><label for="obj4">Improve day-to-day efficiency with shortcuts</label>
<input type="checkbox" id="obj5"><label for="obj5">Capture and rewrite branch history</label>
<input type="checkbox" id="obj6"><label for="obj6">Utilize multiple remote repository interactions</label>
<input type="checkbox" id="obj7"><label for="obj7">Use exteral Git repositories as dependencies</label>
<input type="checkbox" id="obj8"><label for="obj8">Interact with GitHub from the command line</label>
</div>

---


---

## Understanding Git, navigating history

Explore the structure and way change is preserved in Git.

---

---
Expand Down Expand Up @@ -92,6 +116,8 @@ $ git log --oneline --left-right master...other

## Collaborating on change & releases

Cutting and creating releases on the command line and on GitHub.

---

{% capture lab %}
Expand Down Expand Up @@ -170,6 +196,8 @@ $ git push origin :[tag-name-to-delete]

## Ignoring & cleaning up files

Prevent unwanted project artifacts from becoming tracked content.

---

{% capture lab %}
Expand Down Expand Up @@ -223,6 +251,8 @@ $ git clean -fx

## Mastering shortcuts & efficiencies

Circumvent multi-step processes and utilize temporary solutions for quick history interaction.

---

{% capture lab %}
Expand Down Expand Up @@ -299,6 +329,8 @@ $ git config rerere.enable true

## Capturing pieces of history

Craft and acquire commits with selective, as-needed commands.

---

{% capture lab %}
Expand Down Expand Up @@ -331,6 +363,8 @@ git checkout [commit] -- [path]

## Rewriting and crafting history

Rebase and reorder existing commits for improved historical context.

---

---
Expand Down Expand Up @@ -426,6 +460,8 @@ $ git rebase -i --autosquash [ref]

## Reviewing & synchronizing

Interact, investigate, and integrat remote repository histories.

---

{% capture lab %}
Expand Down Expand Up @@ -511,6 +547,8 @@ $ git config --add remote.[upstream].fetch "+refs/pull/*/head:refs/remotes/[upst

## Filtering histories & externalizing dependencies

Separate single, large repository histories into individual projects.

---

{% capture lab %}
Expand Down Expand Up @@ -558,6 +596,8 @@ $ git submodule update --init --recursive

## Signing work

Identify work legitimacy with easy-to-use GPG and commit functionality.

---

{% capture lab %}
Expand Down Expand Up @@ -607,6 +647,8 @@ $ git tag -v [tag-name]

## Using GitHub CLI and the API

Interact with GitHub features directly from the command line.

---

{% capture lab %}
Expand Down Expand Up @@ -663,6 +705,8 @@ There are a number of libraries for interfacing with the GitHub API, all of whic

## Diff & merge tool

Go beyond command line comparison with visual tooling.

---

{% capture lab %}
Expand Down