Home > Development Tools > git > The most detailed Git operation commands are here!

The most detailed Git operation commands are here!

藏色散人
Release: 2021-10-25 15:47:49
forward
2307 people have browsed it

Today this column introduces Git operation commands. Friends who need to take a look are welcome to leave a message for discussion.

1. Create a new code library

Create a new Git code library in the current directory
git init
Copy after login
Create a new directory and initialize it as a Git code repository
git init [project-name]
Copy after login
Download a project and its entire code history
git clone [url]
Copy after login

2. Configuration

Git’s setting file is .gitconfig, which can be in the user’s home directory (global configuration) or in the project directory (project configuration).

显示当前的Git配置
git config --list
Copy after login
编辑Git配置文件
git config -e [--global]
Copy after login
设置提交代码时的用户信息
git config [--global] user.name "[name]"git config [--global] user.email "[email address]"
Copy after login

三、增加/删除文件

添加指定文件到暂存区
git add [file1] [file2] ...
Copy after login
添加指定目录到暂存区,包括子目录
git add [dir]
Copy after login
添加当前目录的所有文件到暂存区
git add .
Copy after login
添加每个变化前,都会要求确认
对于同一个文件的多处变化,可以实现分次提交
git add -p
Copy after login
删除工作区文件,并且将这次删除放入暂存区
git rm [file1] [file2] ...
Copy after login
停止追踪指定文件,但该文件会保留在工作区
git rm --cached [file]
Copy after login
改名文件,并且将这个改名放入暂存区
git mv [file-original] [file-renamed]
Copy after login

四、代码提交

提交暂存区到仓库区
git commit -m [message]
Copy after login
提交暂存区的指定文件到仓库区
git commit [file1] [file2] ... -m [message]
Copy after login
提交工作区自上次commit之后的变化,直接到仓库区
git commit -a
Copy after login
提交时显示所有diff信息
git commit -v
Copy after login
使用一次新的commit,替代上一次提交
如果代码没有任何新变化,则用来改写上一次commit的提交信息
git commit --amend -m [message]
Copy after login
重做上一次commit,并包括指定文件的新变化
git commit --amend [file1] [file2] ...
Copy after login

五、分支

列出所有本地分支
git branch
Copy after login
列出所有远程分支
git branch -r
Copy after login
列出所有本地分支和远程分支
git branch -a
Copy after login
新建一个分支,但依然停留在当前分支
git branch [branch-name]
Copy after login
新建一个分支,并切换到该分支
git checkout -b [branch]
Copy after login
新建一个分支,指向指定commit
git branch [branch] [commit]
Copy after login
新建一个分支,与指定的远程分支建立追踪关系
git branch --track [branch] [remote-branch]
Copy after login
切换到指定分支,并更新工作区
git checkout [branch-name]
Copy after login
切换到上一个分支
git checkout -
Copy after login
建立追踪关系,在现有分支与指定的远程分支之间
git branch --set-upstream [branch] [remote-branch]
Copy after login
合并指定分支到当前分支
git merge [branch]
Copy after login
选择一个commit,合并进当前分支
git cherry-pick [commit]
Copy after login
删除分支
git branch -d [branch-name]
Copy after login
删除远程分支
git push origin --delete [branch-name]git branch -dr [remote/branch]
Copy after login

六、标签

列出所有tag
git tag
Copy after login
新建一个tag在当前commit
git tag [tag]
Copy after login
新建一个tag在指定commit
git tag [tag] [commit]
Copy after login
删除本地tag
git tag -d [tag]
Copy after login
删除远程tag
git push origin :refs/tags/[tagName]
Copy after login
查看tag信息
git show [tag]
Copy after login
提交指定tag
git push [remote] [tag]
Copy after login
提交所有tag
git push [remote] --tags
Copy after login
新建一个分支,指向某个tag
git checkout -b [branch] [tag]
Copy after login

七、查看信息

显示有变更的文件
git status
Copy after login
显示当前分支的版本历史
git log
Copy after login
显示commit历史,以及每次commit发生变更的文件
git log --stat
Copy after login
搜索提交历史,根据关键词
git log -S [keyword]
Copy after login
显示某个commit之后的所有变动,每个commit占据一行
git log [tag] HEAD --pretty=format:%s
Copy after login
显示某个commit之后的所有变动,其”提交说明”必须符合搜索条件
git log [tag] HEAD --grep feature
Copy after login
显示某个文件的版本历史,包括文件改名
git log --follow [file]git whatchanged [file]
Copy after login
显示指定文件相关的每一次diff
git log -p [file]
Copy after login
显示过去5次提交
git log -5 --pretty --oneline
Copy after login
显示所有提交过的用户,按提交次数排序
git shortlog -sn
Copy after login
显示指定文件是什么人在什么时间修改过
git blame [file]
Copy after login
显示暂存区和工作区的差异
git diff
Copy after login
显示暂存区和上一个commit的差异
git diff --cached [file]
Copy after login
显示工作区与当前分支最新commit之间的差异
git diff HEAD
Copy after login
显示两次提交之间的差异
git diff [first-branch]...[second-branch]
Copy after login
显示今天你写了多少行代码
git diff --shortstat "@{0 day ago}"
Copy after login
显示某次提交的元数据和内容变化
git show [commit]
Copy after login
显示某次提交发生变化的文件
git show --name-only [commit]
Copy after login
显示某次提交时,某个文件的内容
git show [commit]:[filename]
Copy after login
显示当前分支的最近几次提交
git reflog
Copy after login

八、远程同步

下载远程仓库的所有变动
git fetch [remote]
Copy after login
显示所有远程仓库
git remote -v
Copy after login
显示某个远程仓库的信息
git remote show [remote]
Copy after login
增加一个新的远程仓库,并命名
git remote add [shortname] [url]
Copy after login
取回远程仓库的变化,并与本地分支合并
git pull [remote] [branch]
Copy after login
上传本地指定分支到远程仓库
git push [remote] [branch]
Copy after login
强行推送当前分支到远程仓库,即使有冲突
git push [remote] --force
Copy after login
推送所有分支到远程仓库
git push [remote] --all
Copy after login

九、撤销

恢复暂存区的指定文件到工作区
git checkout [file]
Copy after login
恢复某个commit的指定文件到暂存区和工作区
git checkout [commit] [file]
Copy after login
恢复暂存区的所有文件到工作区
git checkout .
Copy after login
重置暂存区的指定文件,与上一次commit保持一致,但工作区不变
git reset [file]
Copy after login
重置暂存区与工作区,与上一次commit保持一致
git reset --hard
Copy after login
重置当前分支的指针为指定commit,同时重置暂存区,但工作区不变
git reset [commit]
Copy after login
重置当前分支的HEAD为指定commit,同时重置暂存区和工作区,与指定commit一致
git reset --hard [commit]
Copy after login
重置当前HEAD为指定commit,但保持暂存区和工作区不变
git reset --keep [commit]
Copy after login
新建一个commit,用来撤销指定commit
后者的所有变化都将被前者抵消,并且应用到当前分支
git revert [commit]
Copy after login
暂时将未提交的变化移除,稍后再移入
git stash
git stash pop
Copy after login

十、其他

生成一个可供发布的压缩包
git archive
Copy after login

推荐学习:《Git教程》                            

The above is the detailed content of The most detailed Git operation commands are here!. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
git
source:learnku.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template