Difference between revisions of "Git"
Jump to navigation
Jump to search
(using sortable table to reduce redundancy) |
|||
Line 5: | Line 5: | ||
[[license::open source]] | [[license::open source]] | ||
</hide> | </hide> | ||
+ | __NOTOC__ | ||
==About== | ==About== | ||
[[Git]] is a [[version control system]] based on a powerful distributed model.{{seed}} | [[Git]] is a [[version control system]] based on a powerful distributed model.{{seed}} | ||
Line 13: | Line 14: | ||
==Commands== | ==Commands== | ||
− | {| | + | {| class="wikitable sortable" |
|- | |- | ||
− | ! | + | ! command || process || description |
|- | |- | ||
− | | | + | | '''[[/add|git add]]''' || repo creation 2 || updates the "staged" area using content found in the working tree (can be specified) |
− | + | |- | |
− | + | | '''[[/branch|git branch]]''' || || manages {{l/sub|branch}}es | |
− | + | |- | |
− | + | | '''[[/checkout|git checkout]]''' | |
− | + | |- | |
− | + | | '''[[/clone|git clone]]''' || repo creation 1b || copies a repository from somewhere else | |
− | + | |- | |
− | + | | '''[[/commit|git commit]]''' || repo creation 6 || commits changes currently staged | |
− | + | |- | |
− | + | | '''[[/commit-tree|git commit-tree]] | |
− | + | |- | |
− | + | | '''[[/config|git config]]''' || usage config || | |
− | + | |- | |
− | + | | '''[[/diff|git diff]]''' || repo creation 5 || shows difference between current directory contents and what you have staged | |
− | + | |- | |
− | + | | '''[[/fetch|git fetch]]''' || || fetches named heads or tags from one or more other repositories, along with the objects necessary to complete them. | |
− | + | |- | |
− | + | | '''[[/init|git init]]''' || repo creation 1a || initializes a new repository; does not add anything | |
− | + | |- | |
− | + | | '''[[/log|git log]]''' || || returns information about {{l/sub|commit}}s | |
− | + | |- | |
− | + | | '''[[/merge|git merge]]''' || || joins two or more {{l/sub|branch}}es together | |
− | + | |- | |
− | + | | '''[[/pull|git pull]]''' || copying from || incorporates changes from a remote repository into the current branch. In its default mode, git pull is shorthand for git fetch followed by git merge FETCH_HEAD. | |
− | + | |- | |
− | + | | '''[[/push|git push]]''' || copying to || updates remote refs using local refs, while sending objects necessary to complete the given refs | |
− | + | |- | |
− | + | | '''[[/rebase|git rebase]]''' || || forward-port local commits to the updated upstream head | |
− | + | |- | |
− | + | | '''[[/read-tree|git read-tree]] | |
− | + | |- | |
− | + | | '''[[/remote|git remote]]''' || copying || manage aliases for remote repositories | |
− | + | |- | |
− | + | | '''[[/reset|git reset]]''' || || resets current HEAD to the specified state | |
− | + | |- | |
− | + | | '''[[/rm|git rm]]''' || repo creation 3 || removes files from staging '''and by default also from the filesystem''' | |
− | + | |- | |
− | + | | '''[[/show|git show]]''' | |
− | + | |- | |
− | + | | '''[[/stash|git stash]]''' || || saves local modifications, reverts the working directory to match HEAD commit | |
− | + | |- | |
+ | | '''[[/status|git status]]''' || repo creation 4 || shows status of current repository | ||
+ | |- | ||
+ | | '''[[/submodule|git submodule]]''' || || manages {{l/sub|modules}} | ||
+ | |- | ||
+ | | '''[[/tag|git tag]]''' || || creates an alias for a particular revision | ||
+ | |- | ||
+ | | '''[[/worktree|git worktree]] | ||
+ | |- | ||
+ | | '''[[/write-tree|git write-tree]] | ||
|} | |} | ||
===Files=== | ===Files=== |
Revision as of 14:46, 16 November 2022
About
Git is a version control system based on a powerful distributed model.
This page is a seed article. You can help HTYP water it: make a request to expand a given page and/or donate to help give us more writing-hours!
|
Concepts
Commands
command | process | description |
---|---|---|
git add | repo creation 2 | updates the "staged" area using content found in the working tree (can be specified) |
git branch | manages branches | |
git checkout | ||
git clone | repo creation 1b | copies a repository from somewhere else |
git commit | repo creation 6 | commits changes currently staged |
git commit-tree | ||
git config | usage config | |
git diff | repo creation 5 | shows difference between current directory contents and what you have staged |
git fetch | fetches named heads or tags from one or more other repositories, along with the objects necessary to complete them. | |
git init | repo creation 1a | initializes a new repository; does not add anything |
git log | returns information about commits | |
git merge | joins two or more branches together | |
git pull | copying from | incorporates changes from a remote repository into the current branch. In its default mode, git pull is shorthand for git fetch followed by git merge FETCH_HEAD. |
git push | copying to | updates remote refs using local refs, while sending objects necessary to complete the given refs |
git rebase | forward-port local commits to the updated upstream head | |
git read-tree | ||
git remote | copying | manage aliases for remote repositories |
git reset | resets current HEAD to the specified state | |
git rm | repo creation 3 | removes files from staging and by default also from the filesystem |
git show | ||
git stash | saves local modifications, reverts the working directory to match HEAD commit | |
git status | repo creation 4 | shows status of current repository |
git submodule | manages modules | |
git tag | creates an alias for a particular revision | |
git worktree | ||
git write-tree |
Files
Software
- GUI clients:
- 10.6 Git Internals - Transfer Protocols: technical details
- could be used to implement a Git server
Services
- GitHub: free web-based git repository for open-source projects
Error Messages
- Error Code 403 fatal: HTTP request failed may indicate a bad password. I've found that sometimes the password either doesn't paste properly or else isn't being accepted the first time; trying again with the same password may work. (The password is not displayed, so I'm not sure which it is.)
Links
Reference
How To
- Oh Shit, Git!?!: solutions to frequently encountered situations in Git
- How to Rename the
master
branch tomain
in Git: the GitHub portion of this is also doable in GitLab, though the process is slightly different. - Change the default branch-name:
- How can I create a Git repository with the default branch name other than "master"?: This lets you change the default name of the branch that is created for new repositories.
Online Books
- Pro Git
- 1.3 Getting Started - Git Basics
- 1.6 Getting Started - Getting Help
- 2. Git Basics - "If you can read only one chapter to get going with Git, this is it. This chapter covers every basic command you need to do the vast majority of the things you’ll eventually spend your time doing with Git."
- 4.4 Git on the Server - Setting Up the Server
Online Courses
- Learn to use Git @ Code School (free registration required)
Articles
- 2019-03-05 Building software together with Git: a non-technical introduction