Skip to content

Commit fd0fa73

Browse files
committed
update git tutorials and new blog post
1 parent cee2504 commit fd0fa73

File tree

5 files changed

+95
-11
lines changed

5 files changed

+95
-11
lines changed

content/pages/02-development-environments/22-git.markdown

Lines changed: 40 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ frequently used as the version control system for Python projects.
1818
<div class="well see-also">Git is an implementation of the <a href="/source-control.html">source control</a> concept. Learn how these pieces fit together in the <a href="/development-environments.html">development environments</a> chapter or view the <a href="/table-of-contents.html">table of contents</a> for all topics.</div>
1919

2020

21-
## Git tutorials
21+
## Beginner Git tutorials
2222
Git can take awhile to wrap your head around, even for experienced software
2323
developers. The following tutorials can quickly get you up to speed.
2424

@@ -52,6 +52,10 @@ developers. The following tutorials can quickly get you up to speed.
5252
is a concise essay explaining what happens when you add and commit files
5353
in a Git repository.
5454

55+
* [19 Tips For Everyday Git Use](http://www.alexkras.com/19-git-tips-for-everyday-use/)
56+
is a laundry list of helpful Git tips on commands such as `git bisect`,
57+
`git stash` and `git difftool`.
58+
5559
* A
5660
[practical git introduction](http://marc.helbling.fr/2014/09/practical-git-introduction)
5761
is rich with pragmatic examples for Git usage.
@@ -61,6 +65,28 @@ developers. The following tutorials can quickly get you up to speed.
6165
are great for learning Git piece-by-piece.
6266

6367

68+
## Advanced Git tutorials and resources
69+
You won't learn Git in an afternoon or even a few months of usage. After
70+
six-plus years of working with Git I still get tripped up and have a lot to
71+
learn. These tutorials have taught me some of the beyond-the-basics edge
72+
cases.
73+
74+
* [Flight rules for git](https://github.com/k88hudson/git-flight-rules)
75+
contains common commands that answer specific desired tasks such as
76+
"I want to discard specific unstaged files" (`git checkout filename`) and
77+
"I want to rename a branch" (`git branch -m newname`).
78+
79+
* [Shadows Of The Past: Analysis Of Git Repositories](https://jqassistant.org/shadows-of-the-past-analysis-of-git-repositories/)
80+
explains how you can extract some surprising data from Git repositories'
81+
commit history, such as which developers are domain experts in certain
82+
tools, potential hot spots in the code and coupling between source code
83+
files. This is a great read once you get past the basics of using Git.
84+
85+
* [Phil Nash](https://philna.sh/) shows how to use the `git reflog` command
86+
in [Git back to the future](https://philna.sh/blog/2017/01/04/git-back-to-the-future/).
87+
88+
89+
6490
## Specific Git resources
6591
Large tutorials are great for getting started with Git. However, sometimes
6692
you need tactical support or want to learn new tricks to add to your
@@ -76,9 +102,6 @@ workflow. These resources will come in handy for specific Git subjects.
76102
of tips to get you out of binds you may find yourself in when you get too
77103
tricky with Git commands.
78104

79-
* [Phil Nash](https://philna.sh/) shows how to use the `git reflog` command
80-
in [Git back to the future](https://philna.sh/blog/2017/01/04/git-back-to-the-future/).
81-
82105
* [Another Git catastrophe cleaned up](http://blog.plover.com/prog/git-tastrophe.html)
83106
goes through a difficult merge scenario that required deep Git
84107
understanding to properly fix.
@@ -91,10 +114,6 @@ workflow. These resources will come in handy for specific Git subjects.
91114
pro tips to clean up common issues and how to dive through Git history
92115
to find specific text.
93116

94-
* [19 Tips For Everyday Git Use](http://www.alexkras.com/19-git-tips-for-everyday-use/)
95-
is a laundry list of helpful Git tips on commands such as `git bisect`,
96-
`git stash` and `git difftool`.
97-
98117
* Git allows command aliasing, which allowed one developer to create his
99118
own list of [lesser known Git commands](https://hackernoon.com/lesser-known-git-commands-151a1918a60)
100119
that alias more complicated Git lines.
@@ -129,6 +148,18 @@ workflow. These resources will come in handy for specific Git subjects.
129148
explains global config options, revisions and merging along with several
130149
other commands that can be customized to your taste.
131150

151+
* [Why does Git use a cryptographic hash function?](https://stackoverflow.com/questions/28792784/why-does-git-use-a-cryptographic-hash-function)
152+
explains that the SHA-1 hash isn't used for security on Git, it's a
153+
consistency check. [SHA-1 has been broken](https://shattered.io/)
154+
in practice so Git needs to transition to a stronger hash without proven
155+
collisions but it's not quite as big of a concern compared to
156+
security-related projects that use SHA-1.
157+
158+
* [The anatomy of a git commit](https://blog.thoughtram.io/git/2014/11/18/the-anatomy-of-a-git-commit.html)
159+
digs into the tree and commit objects that underpin the Git source control
160+
system. This is an awesome read to get a view on how Git works under the
161+
commands you're using to manipulate these objects.
162+
132163

133164
## Git Workflows
134165
Teams of developers can use Git in varying workflows because of Git's
@@ -153,3 +184,4 @@ minimize merge conflicts.
153184
by Braintree goes over how this payments company uses Git for development
154185
and merging source code.
155186

187+

content/pages/11-devops/02-monitoring.markdown

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -123,9 +123,12 @@ these services are not the right fit for every project.
123123

124124

125125
## Monitoring resources
126-
* [How to Add Hosted Monitoring to Flask Web Applications](https://www.fullstackpython.com/blog/hosted-monitoring-flask-web-apps.html)
127-
is the first post in a series showing how to add hosted monitoring to
128-
Python web apps built with any of the major Python frameworks.
126+
* [How to Add Hosted Monitoring to Flask Web Applications](/blog/hosted-monitoring-flask-web-apps.html)
127+
and
128+
[How to Monitor Bottle Web Applications](/blog/monitor-python-web-applications.html)
129+
are a couple of posts in a series showing how to add hosted monitoring to
130+
Python web apps built with any of the major Python
131+
[web frameworks](/web-frameworks.html).
129132

130133
* [The Virtues of Monitoring](http://www.paperplanes.de/2011/1/5/the_virtues_of_monitoring.html)
131134

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
title: GitPython and New Git Tutorials
2+
slug: gitpython-git-tutorials
3+
meta: Learn about the awesome GitPython project and take a look at a slew of great Git tutorials.
4+
category: post
5+
date: 2017-12-11
6+
modified: 2017-12-11
7+
headerimage: /img/visuals/email-post-header.jpg
8+
headeralt: Python programming language and Full Stack Python logos.
9+
10+
11+
[**First Steps with GitPython**](https://www.fullstackpython.com/blog/first-steps-gitpython.html)
12+
is a quick tutorial that shows how to get started using the awesome
13+
[GitPython](https://gitpython.readthedocs.io/en/stable/) library for
14+
programmatically interacting with Git repositories in your Python
15+
applications. In the spirit of the
16+
[thank you maintainers](https://github.com/jhund/filterrific/issues/147#issuecomment-341867147)
17+
issue ticket I wrote about last newsletter, I opened a quick
18+
["non-issue" ticket for the GitPython developers](https://github.com/gitpython-developers/GitPython/issues/709)
19+
to thank them. Give them a thank you +1 if you've used the project and also
20+
found it useful.
21+
22+
The [**Git**](https://www.fullstackpython.com/git.html) page on Full Stack
23+
Python has also just been updated with new resources. A few of my favorite
24+
new tutorials list on the [Git page](https://www.fullstackpython.com/git.html)
25+
are:
26+
27+
* [Flight rules for Git](https://github.com/k88hudson/git-flight-rules)
28+
* [Git back to the future](https://philna.sh/blog/2017/01/04/git-back-to-the-future/)
29+
* [Shadows Of The Past: Analysis Of Git Repositories](https://jqassistant.org/shadows-of-the-past-analysis-of-git-repositories/)
30+
* [The anatomy of a Git commit](https://blog.thoughtram.io/git/2014/11/18/the-anatomy-of-a-git-commit.html)
31+
32+
I also split out the Git page resources into beginner, more advanced, specific
33+
use case and workflow sections so it's easier to parse based on whether you're
34+
a Git veteran or still up-and-coming in that area of your development skills.
35+
36+
Got questions or comments about
37+
[Full Stack Python](https://www.fullstackpython.com/)? Send me an email or
38+
[submit an issue ticket on GitHub](https://github.com/mattmakai/fullstackpython.com/issues)
39+
to let me know how to improve the site
40+
as I continue to
41+
[fill in the table of contents](/table-of-contents.html)
42+
with [new pages](/change-log.html)
43+
and
44+
[new tutorials](/blog.html).

static/img/logos/scikit-learn.png

32.2 KB
Loading
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<a href="/blog/first-steps-gitpython.html" class="list-group-item smaller-item">First Steps with GitPython</a>
2+
<a href="https://gitpython.readthedocs.io/en/stable/" class="list-group-item smaller-item">GitPython official docs {% include "blog/external-link.html" %}</a>
3+
<a href="https://github.com/gitpython-developers/GitPython" class="list-group-item smaller-item">GitPython source code {% include "blog/external-link.html" %}</a>
4+
<a href="/git.html" class="list-group-item smaller-item">Git</a>
5+
<a href="/source-control.html" class="list-group-item smaller-item">Source control</a>

0 commit comments

Comments
 (0)