371 lines
4.9 KiB
Plaintext
371 lines
4.9 KiB
Plaintext
Application
|
||
Programming
|
||
Hend Alkittawi
|
||
|
||
Version Control
|
||
Introduction To Git And Github
|
||
|
||
INTRODUCTION
|
||
|
||
We watched a few videos from the following course on
|
||
Udacity:
|
||
Version Control With Git
|
||
|
||
VERSION CONTROL
|
||
-
|
||
|
||
Collaborative software development necessitates a system for
|
||
source control and versioning!
|
||
|
||
-
|
||
|
||
A version control system facilitates simultaneous updates to
|
||
the same software and manages any conflicts created!
|
||
|
||
-
|
||
|
||
There are a few version control system options
|
||
-
|
||
|
||
CVS - Concurrent Versions System
|
||
|
||
-
|
||
|
||
SVN - Apache Subversion
|
||
|
||
-
|
||
|
||
GIT - a distributed VCS
|
||
|
||
(not the only one)
|
||
|
||
VERSION CONTROL
|
||
|
||
GIT
|
||
-
|
||
|
||
Developed by Linus Torvalds around 2005
|
||
|
||
-
|
||
|
||
Open source, under the GNU GPL (General Public License)
|
||
|
||
-
|
||
|
||
Distributed, in that every directory on every computer is a
|
||
full-fledged repository
|
||
|
||
-
|
||
|
||
It has a complete history, version-tracking capabilities
|
||
|
||
-
|
||
|
||
Independent of network access, or a central server
|
||
|
||
-
|
||
|
||
Use as command-line or via GUI
|
||
|
||
GIT
|
||
-
|
||
|
||
To create a local Git Repo
|
||
1.
|
||
|
||
Create a new project directory
|
||
|
||
mkdir WorkingDir
|
||
|
||
2.
|
||
|
||
Move into that new directory
|
||
|
||
cd WorkingDir
|
||
|
||
3.
|
||
|
||
Initialize Git repository
|
||
|
||
git init
|
||
|
||
4.
|
||
|
||
Create/edit project files
|
||
|
||
5.
|
||
|
||
Stage files in the project directory
|
||
|
||
git add .
|
||
|
||
6.
|
||
|
||
Commit tracked files in Git storage
|
||
|
||
git commit -m "a msg"
|
||
|
||
Git Repository
|
||
|
||
Working Directory
|
||
file1
|
||
|
||
file2
|
||
|
||
Staging Area
|
||
|
||
GITHUB
|
||
-
|
||
|
||
Web-based Git repository hosting service
|
||
|
||
-
|
||
|
||
Provides cloud storage, public/private
|
||
repos, free accounts
|
||
|
||
-
|
||
|
||
Home to lots of open source software!
|
||
|
||
-
|
||
|
||
To use Github
|
||
1.
|
||
|
||
Access a remote repository on Github.com
|
||
|
||
2.
|
||
|
||
Pull down the latest version of the code to local
|
||
|
||
3.
|
||
|
||
Add edited files to the source code
|
||
|
||
4.
|
||
|
||
Commit edits to the local version
|
||
|
||
git commit -m "short msg"
|
||
|
||
5.
|
||
|
||
Push the changes out to the server
|
||
|
||
git push
|
||
|
||
git pull
|
||
|
||
git add File.java
|
||
|
||
VERSION CONTROL
|
||
-
|
||
|
||
Summary of Git Terminology
|
||
-
|
||
|
||
Repo - repository
|
||
|
||
-
|
||
|
||
Init - initialize a repository
|
||
|
||
-
|
||
|
||
Commit
|
||
|
||
-
|
||
|
||
Push/Pull
|
||
|
||
-
|
||
|
||
Clone - copy a remote repo locally
|
||
|
||
-
|
||
|
||
Branch - a separate version of the main repo that allows
|
||
working on different parts of a project without impacting the
|
||
main branch.
|
||
|
||
VERSION CONTROL
|
||
-
|
||
|
||
Git and Github
|
||
-
|
||
|
||
You can choose how you want to use Git and Github
|
||
-
|
||
|
||
Command line
|
||
|
||
-
|
||
|
||
Browser
|
||
|
||
http://github.com
|
||
|
||
-
|
||
|
||
GitHub Desktop
|
||
|
||
http://desktop.github.com
|
||
|
||
-
|
||
|
||
IDE
|
||
|
||
VERSION CONTROL
|
||
-
|
||
|
||
Some useful resources
|
||
-
|
||
|
||
Hints for using eGit (Eclipse plugin)
|
||
|
||
-
|
||
|
||
Resolving merge conflicts
|
||
|
||
-
|
||
|
||
Effective Git:
|
||
|
||
-
|
||
|
||
Tutorial:
|
||
|
||
https://git-scm.com/book/en/v2
|
||
|
||
https://try.github.io/
|
||
|
||
README FILES
|
||
-
|
||
|
||
A code readme file should include dependencies, description of
|
||
functionality, etc.
|
||
|
||
-
|
||
|
||
A repo readme file should describe project(s) in the repo,
|
||
contributors, functionality, license(s), contribution
|
||
guidelines, known issues, ….
|
||
|
||
-
|
||
|
||
A README file is created using markdown language!
|
||
|
||
-
|
||
|
||
Example: README.md template · GitHub
|
||
|
||
README FILES
|
||
-
|
||
|
||
More Readme
|
||
-
|
||
|
||
A Beginners Guide to writing a Kickass README ✍ | by Akash
|
||
|
||
-
|
||
|
||
Top ten reasons why I won't use your open source project |>
|
||
Changelog
|
||
|
||
-
|
||
|
||
GitHub - hackergrrl/art-of-readme: :love_letter: Things I've
|
||
learned about writing good READMEs.
|
||
|
||
-
|
||
|
||
How To Write A Great README
|
||
|
||
-
|
||
|
||
GitHub - jehna/readme-best-practices: Best practices for writing a
|
||
README for your open source project
|
||
|
||
-
|
||
|
||
zalando-howto-open-source/READMEtemplate.md at master
|
||
|
||
TUTORIAL
|
||
Using Git/Github in
|
||
Android Studio
|
||
|
||
Generate a personal access token and save it somewhere! (Under your
|
||
Github account > Settings > Developer Settings)
|
||
Check the repository created under your team in CS3443 Github
|
||
organization OR create your own repository under your account
|
||
|
||
Create your project in Android Studio then create a local Git repo
|
||
(Android Studio > VCS > Enable Version Control Integration, select Git)
|
||
|
||
Create your project in Android Studio then create a local Git repo
|
||
(Android Studio > VCS > Enable Version Control Integration, select Git)
|
||
|
||
Stage files (Right click on app > Git > Add)
|
||
|
||
Commit to local repo (Right click on app > Git > Commit Directory…) and
|
||
add the unversioned files
|
||
|
||
Rename local branch to main (to match the remote branch name)
|
||
-- IMPORTANT --
|
||
|
||
Copy the https URL for the remote repo
|
||
|
||
Add the remote repo
|
||
|
||
Add the remote repo
|
||
|
||
Add the remote repo
|
||
|
||
Fetch
|
||
|
||
Note: Since we added a README to the remote repo we need Rebase before
|
||
we Pull. You do not need to Rebase before you Pull if you did not
|
||
create a README in the remote repo - you can skip slides 27 and 28.
|
||
|
||
Rebase (we are just using it here because our local and remote repos
|
||
initially do not have a “common history”)
|
||
|
||
Pull from remote repo
|
||
|
||
Pull from remote repo
|
||
|
||
Push to remote repo
|
||
|
||
Push to remote repo
|
||
|
||
Modify file(s) on Github (similar to if someone else modifies the files)
|
||
|
||
Modify file(s) on Github (similar to if someone else modifies the files)
|
||
|
||
Pull changes to local repo
|
||
|
||
Modify file(s) locally
|
||
Stage, commit and push to remote repo (like above)
|
||
Check the remote repo
|
||
|
||
CODE DEMO
|
||
-
|
||
|
||
Show how to use Git in
|
||
Android Studio
|
||
|
||
DO YOU HAVE ANY
|
||
QUESTIONS?
|
||
|
||
THANK
|
||
YOU!
|
||
|
||
@
|
||
|
||
hend.alkittawi@utsa.edu
|
||
|
||
By Appointment
|
||
Online
|
||
|
||
|