#Common Git Commands
Git Workflow
Downloading Code
- Assign a Git account or generate your own public and private keys, then submit the public key to the Git administrator.
- Clone the remote repository with
git clone
. - Develop based on the downloaded code and then commit your changes.
Creating a New Project
- Create a new repository on the server.
- Generate a local repository with
git init
, develop in this repository, and commit the code after development. - Then push the code to the empty repository on the server.
Three Important Areas in Git
Working Directory
The content extracted independently from a particular version of the project. These files are extracted from the compressed database of the Git repository and placed on the disk for you to use or modify.
Staging Area
A file that stores the list of information about files to be committed next. It is usually located in the Git repository directory and is sometimes referred to as the index, but it is generally called the staging area.
Local Repository
The place where Git stores the project’s metadata and object database. This is the most important part of Git. When you clone a repository from another computer, you are copying this data.
Four States of Git Files
Untracked
Files just created in the working directory.
Staged
Files that have been moved from the working directory to the staging area.
Committed
Files that have been committed from the staging area to the local repository.
Modified
Files that have been modified in the staging area.
Git Commands
Initialize a Repository
1
git init
Configure User Information
1
2git config --global user.name "Name"
git config --global user.email "Email"Check File Status
1
git status
Add Untracked Files to the Staging Area
1
2
3git add file (Separate multiple files with spaces)
git add -A (Add all files)
git add * (Also add all files)Remove Files from the Staging Area
1
git rm --cached file (Separate multiple files with spaces)
Commit the Staging Area to the Local Repository
1
git commit -m 'Description'
View Local Repository Commit Records
1
git log
Discard Changes in the Staging Area
1
git checkout -- files
Discard all changes in the staging area
1
git checkout .
Overwrite the Working Directory and Staging Area with a Snapshot from the Local Repository, Discarding Commits After a Specific Commit ID
1
git reset --hard <commitID>
Overwrite the Staging Area with the Latest Version from the Local Repository Without Overwriting the Working Directory
Essentially cancels the
git add
operation1
git reset HEAD
Branch Commands
Create a Branch
If no branch name is provided, it lists the current branches.
*
indicates the current branch.1
git branch branch_name
View Remote Branches
1
git branch -r
View Local and Remote Branches
1
git branch -a
Delete a Branch
1
git branch -d branch_name
Switch Branches
1
git checkout branch_name
Merge Branches
1
git merge branch_name (Source branch)
Create and Switch to a Branch
Equivalent to running
git branch
andgit checkout
simultaneously1
git checkout -b branch_name
Fetch from Remote Repository Without Merging
1
git fetch
Merge Fetched Code
1
git merge
Delete Remote Branch
1
2git push origin --delete branch_name
git push origin:branch_name
Shared Repository
Create a folder ending with .git
locally, then run the following command in this .git
folder:
1 | git init --bare |
Push Code
Push Code to a Remote Repository
1
git push remote_repo_url local_branch:remote_branch
If the local and remote branch names are the same, you can omit the remote branch name.
1
git push remote_repo_url local_branch
Pull Code from a Remote Repository
1
git pull remote_repo_url remote_branch:local_branch
If the local and remote branch names are the same, you can omit the local branch name.
1
git pull remote_repo_url remote_branch
Clone a Remote Repository
When cloning, an alias
origin
is automatically generated for the remote repository.1
git clone remote_repo_url directory_name (Optional, defaults to the remote repository name)
Add an Alias for a Remote Repository
1
git remote add alias_name remote_repo_url
View Remote Repository Aliases
1
git remote
View the Specific URL of a Remote Repository Alias
1
git remote show origin
Push Code Using an Alias
1
git push origin master:master
Push Code Using an Alias
1
git push
Pull Code Using an Alias
git pull
is equivalent to runninggit fetch
andgit merge
simultaneously.1
git pull
Set Upstream Branch for Tracking After Pulling Code
1
git branch --set-upstream-to=origin/master master
origin/master
indicates the remote branch.master
indicates the local branch.
Save Work Scene to Temporarily Switch to Other Work
1
git stash
Resume Work Scene After Other Work is Done
1
git stash pop
Difference Between git pull
and git clone
git clone
automatically creates an aliasorigin
for the remote repository URL.git clone
automatically tracks remote branches, so you can directly usegit pull
to update code.
Other Git Operations
Ignoring Files with .gitignore
Create a .gitignore
file in the project’s root directory to list files that should not be committed, such as project configuration files and node_modules
.
Comparing Differences
When content is modified and you are unsure what has changed, you can use git diff
to compare differences.
Compare differences between the working directory and the staging area.
1
git difftool
Compare differences with a specific commit.
1
git difftool "SHA"
Compare differences between two commits.
1
git difftool "SHA1" "SHA2"
Compare differences with a branch.
1
git difftool branch_name