1. Git Basics
git init <directory>: Create empty Git repo in specified directory .Run with no argument to initialize the current directory as a git repository.
git clone <repo> : Clone repo located at <repo> onto local machine.Original repo can be located on the local filesystem or on remote machine via HTTP or SSH.
git config user.name <name> : Define author name to be for all commits in current repo.Devs commonly use -- global flag to set config options for current user.
git commit -m "<message>" : Commit the staged snapshot, but instead of launching a text editor, use <message> as the commit message.
git status : List which files are staged, unstaged, and untracked.
git log : Display the entries commit history using the default format. For customization see additional options.
git diff : Show unstaged changes between your index and working directory.
2. Undoing Changes
git revert <commit> : Create new commit that undoes all of the changes made in <commit>, then apply it to the current branch.
git reset <file> : Remove <file> from the staging area, but leave the working directory unchanged. This unstaged a file without overwriting
any changes.
git clean -n : Shows which files would be removed from working directory.Use the -f flag in place of the -n flag to execute the clean.
3. Rewriting Git History
git commit --amend : replace the last commit with the staged changes and last commit combined. use with nothing staged to edit the last
commits message.
git rebase <base> : Rebase the current branch onto <base>. <base> can be a commit ID, a branch name, a tag, or a relative reference to HEAD.
git reflog : show a log of changes to the local repository's HEAD. Add --relative-date flag to show date info or --all to show all refs.
4. Git Branches
git branch : List all of the branches in your repo. Add a <branch> argument to create a new branch with the name <branch>.
git checkout -b <branch> : Create and check out a new branch named <branch>. Drop the -b flag to checkout an existing branch.
git merge <branch> : Merge <branch> into the current branch.
5. Remote Repositories
git remote add <name> <url> : Create a new connection to a remote repo. After adding a remote, you can use <name> as a shortcut for <url> in other commands.
git fetch <remote> <branch> : Fetches a specific <branch>, from the repo. Leave off <branch> to fetch all remote refs.
git pull <remote> : Fetch the specified remote's copy of current branch and immediately merge it into the local copy.
git push <remote> <branch>: Push the branch to <remote>, along with necessary commits and objects. Creates named branch in the remote
repo if it doesn't exist.
6. Git config
git config --global user.name <name> : Define the author name to be used for all commits by the current user.
git config --global user.email <email> : Define the author email to be used for all commits by the current user.
git config --global alias.<alias-name> <git-command>: Create shortcut for a Git command. E.g.alias.glog "log --graph --oneline" will be set "git glog"
equivalent to "git log --graph --oneline"
git config --system core.editor <editor> : set text editor used by commands for all users on the machine. <editor> arg should be the command
that launches the desired editor.
git config --global --edit: Open the global configuration file in a text editor for manual editing.
7. Git log
git log -<limit> : Limit number of commits by <limit>. E.g. "git log -5" will limit to 5 commits.
git log --oneline : Condense each commit to a single line.
git log --stat :include which files were altered and the relative number of lines that were added or deleted from each of them.
git log -p : Display the full diff of each commit
git log --author="<pattern>": Search for commits by a particular author.
git log --grep="<pattern>" : Search for commits with a commit message that matches <pattern>.
git log <since> .. <until>: show commits that occur between <since> and <until>. args can be a commit ID, branch name, HEAD, or any other
kind of revision reference.
git log --<file> : Only display commits that have the specified file.
git log --graph --decorate : --graph flag draws a text based graph of commits on left side of commit msgs. --decorate adds names of branches
or tags of commits shown.
8. Git diff
git diff HEAD : Show difference between working directory and last commit.
git diff --cached : Show difference between staged chnages and last commit.
9. Git reset
git reset : Reset staging area to match most recent commit, but leave the working directory unchanged.
git reset --hard : Reset staging area and working directory to match most recent commit and overwrites all chnages in the working directory alone.
git reset <commit> : Move the current branch tip backward to <commit>, reset the staging area to match, but leave the working directory alone.
git reset --hard <commit> : Same as previous, but resets both the staging area & working directory to match. Deletes uncommitted chnages, and
all commits after <commit>
10. Git rebase
git rebase -i <base> : Interactively rebase current branch onto <base>. Lanuches editor to enter commands for how each commit will be
transferred to the new base.
11. Git pull
git pull --rebase <remote> : Fetch the remote's copy of current branch and rebases it into the local copy. Uses git rebase instead of merge to
integrate the branches.
12. Git push
git push <remote> --force : forces the git push even if it results in a non-fast-forward merge. Do not use the --force flag unless you're absolutely
sure you know what you're doing
git push <remote> --all : Push all of your local branches to the specified remote
git push <remote> --tags : tags aren't automatically pushed when you push a branch or use the --all flag. the --tags flag sends all of your local tags to the remote repo.
本文提供了Git的基础操作指南,涵盖初始化、克隆、配置、提交等基本命令,并深入介绍了撤销更改、重写历史、分支管理及远程仓库同步等进阶技巧。
2543

被折叠的 条评论
为什么被折叠?



